• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++ allocator_type类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C++中allocator_type的典型用法代码示例。如果您正苦于以下问题:C++ allocator_type类的具体用法?C++ allocator_type怎么用?C++ allocator_type使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



在下文中一共展示了allocator_type类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1:

   static size_type shrink_buckets
      ( bucket_ptr buckets, size_type old_size
      , allocator_type &alloc, size_type new_size)
   {
      if(old_size <= new_size )
         return old_size;
      size_type received_size;
      if(!alloc.allocation_command
         (boost::interprocess::try_shrink_in_place | boost::interprocess::nothrow_allocation, old_size, new_size, received_size, buckets).first){
         return old_size;
      }

      for( bucket_type *p = ipcdetail::to_raw_pointer(buckets) + received_size
         , *pend = ipcdetail::to_raw_pointer(buckets) + old_size
         ; p != pend
         ; ++p){
         p->~bucket_type();
      }

      bucket_ptr shunk_p = alloc.allocation_command
         (boost::interprocess::shrink_in_place | boost::interprocess::nothrow_allocation, received_size, received_size, received_size, buckets).first;
      BOOST_ASSERT(buckets == shunk_p); (void)shunk_p;

      bucket_ptr buckets_init = buckets + received_size;
      for(size_type i = 0; i < (old_size - received_size); ++i){
         to_raw_pointer(buckets_init++)->~bucket_type();
      }
      return received_size;
   }
开发者ID:danieljames,项目名称:interprocess,代码行数:29,代码来源:iunordered_set_index.hpp


示例2: E

 explicit E(int i, int j, const allocator_type& a)
 {
     assert(i == 1);
     assert(j == 2);
     assert(a.id() == 50);
     constructed = true;
 }
开发者ID:Bhudipta,项目名称:minix,代码行数:7,代码来源:construct.pass.cpp


示例3: create_buckets

 static bucket_ptr create_buckets(allocator_type &alloc, size_type num)
 {
    num = index_type::suggested_upper_bucket_count(num);
    bucket_ptr buckets = alloc.allocate(num);
    bucket_ptr buckets_init = buckets;
    for(size_type i = 0; i < num; ++i){
       new(to_raw_pointer(buckets_init++))bucket_type();
    }
    return buckets;
 }
开发者ID:danieljames,项目名称:interprocess,代码行数:10,代码来源:iunordered_set_index.hpp


示例4: reuse

 static bucket_ptr expand_or_create_buckets
    ( bucket_ptr old_buckets, const size_type old_num
    , allocator_type &alloc,  const size_type new_num)
 {
    size_type received_size = new_num;
    bucket_ptr reuse(old_buckets);
    bucket_ptr ret = alloc.allocation_command
          (boost::interprocess::expand_fwd | boost::interprocess::allocate_new, new_num, received_size, reuse);
    if(ret == old_buckets){
       bucket_ptr buckets_init = old_buckets + old_num;
       for(size_type i = 0; i < (new_num - old_num); ++i){
          ::new(to_raw_pointer(buckets_init++), boost_container_new_t())bucket_type();
       }
    }
    else{
       bucket_ptr buckets_init = ret;
       for(size_type i = 0; i < new_num; ++i){
          ::new(to_raw_pointer(buckets_init++), boost_container_new_t())bucket_type();
       }
    }
    return ret;
 }
开发者ID:alanwoolley,项目名称:innoextract-android,代码行数:22,代码来源:iunordered_set_index.hpp


示例5: new

   static bucket_ptr expand_or_create_buckets
      ( bucket_ptr old_buckets, const size_type old_num
      , allocator_type &alloc,  const size_type new_num)
   {
      size_type received_size;
      std::pair<bucket_ptr, bool> ret =
         alloc.allocation_command
            (boost::interprocess::expand_fwd | boost::interprocess::allocate_new, new_num, new_num, received_size, old_buckets);
      if(ret.first == old_buckets){
         bucket_ptr buckets_init = old_buckets + old_num;
         for(size_type i = 0; i < (new_num - old_num); ++i){
            new(to_raw_pointer(buckets_init++))bucket_type();
         }
      }
      else{
         bucket_ptr buckets_init = ret.first;
         for(size_type i = 0; i < new_num; ++i){
            new(to_raw_pointer(buckets_init++))bucket_type();
         }
      }

      return ret.first;
   }
开发者ID:danieljames,项目名称:interprocess,代码行数:23,代码来源:iunordered_set_index.hpp


示例6: deallocate

 //-------------------------------------------------------------------
 //! Deallocate a bunch of memory.
 //-------------------------------------------------------------------
 static void
 deallocate(const allocator_type &a, T *ptr, 
            size_type const n = size_type())
 {
   return a->deallocate(ptr);
 }
开发者ID:rsenn,项目名称:libborg,代码行数:9,代码来源:allocator.hpp


示例7: C

 explicit C(std::allocator_arg_t, const allocator_type& a, int i)
 {
     assert(a.id() == 7);
     assert(i == 8);
     constructed = true;
 }
开发者ID:Bhudipta,项目名称:minix,代码行数:6,代码来源:construct.pass.cpp


示例8: construct

 static void construct(allocator_type& a, U* p, Args&&... args)
 {a.construct(p, std::forward<Args>(args)...);}
开发者ID:alexgarzao,项目名称:rtcpp,代码行数:2,代码来源:allocator_traits.hpp


示例9: destroy

 static void destroy(allocator_type& a, U* p) {a.destroy(p);}
开发者ID:alexgarzao,项目名称:rtcpp,代码行数:1,代码来源:allocator_traits.hpp


示例10: push

	void push(T &&new_value) {
		auto ptr = allocator.allocate(1);
		::new (ptr) T(std::move(new_value));

		stored_ptr new_data(ptr);

		push(std::move(new_data));
	}
开发者ID:ssteinberg,项目名称:ste,代码行数:8,代码来源:concurrent_queue.hpp


示例11:

      void
      _M_deallocate_node(_Node_* const __P)
      {
	// Deallocate a node of size sizeof(_Node_)!
        return _M_node_allocator.deallocate(__P, 1*sizeof(_Node_));
      }
开发者ID:anetasie,项目名称:sherpa-src-2013,代码行数:6,代码来源:allocator.hpp


示例12:

		CAlloc_obj()
			:data_{alloc_.allocate(1)},has_not_destroy_{false}{}
开发者ID:Fdhvdu,项目名称:lib,代码行数:2,代码来源:CAlloc_obj.hpp


示例13: allocate

 pointer allocate(size_type n){
     return static_cast<pointer>(A_.allocate(n*sizeof(T)));
 }
开发者ID:TraceBundy,项目名称:vector,代码行数:3,代码来源:vector.hpp


示例14: destroy

 void destroy(pointer start, pointer end){
     while (start != end){
         A_.destroy(start++);
     }
 }
开发者ID:TraceBundy,项目名称:vector,代码行数:5,代码来源:vector.hpp


示例15:

 void
 _M_deallocate_node(_Node_* const __P)
 {
     return _M_node_allocator.deallocate(__P, 1);
 }
开发者ID:dqyi11,项目名称:H2P,代码行数:5,代码来源:allocator.hpp


示例16: return

      _Node_*
      _M_allocate_node()
      {
	// Allocate a new node of size sizeof(_Node_)!
        return (_Node_*) _M_node_allocator.allocate(1*sizeof(_Node_));
      }
开发者ID:anetasie,项目名称:sherpa-src-2013,代码行数:6,代码来源:allocator.hpp


示例17: deallocate

	static inline void deallocate(void * p)
		{ allocator.release((data_type *)p); }
开发者ID:AlexandreCo,项目名称:macemu,代码行数:2,代码来源:block-alloc.hpp


示例18: deallocate

 void deallocate(pointer p, size_type n){
     A_.deallocate(p, n*sizeof(T));
 }
开发者ID:TraceBundy,项目名称:vector,代码行数:3,代码来源:vector.hpp


示例19: construct

 void construct(pointer finish, const_reference &c){
     A_.construct(finish, c);
 }
开发者ID:TraceBundy,项目名称:vector,代码行数:3,代码来源:vector.hpp


示例20:

	static inline void *allocate()
		{ return allocator.acquire(); }
开发者ID:AlexandreCo,项目名称:macemu,代码行数:2,代码来源:block-alloc.hpp



注:本文中的allocator_type类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ any类代码示例发布时间:2022-05-31
下一篇:
C++ allocator类代码示例发布时间:2022-05-31
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap