当前位置: 首页>>代码示例>>C++>>正文


C++ MemPool::Allocate方法代码示例

本文整理汇总了C++中MemPool::Allocate方法的典型用法代码示例。如果您正苦于以下问题:C++ MemPool::Allocate方法的具体用法?C++ MemPool::Allocate怎么用?C++ MemPool::Allocate使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在MemPool的用法示例。


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

示例1: linearMemAlign

void* linearMemAlign(size_t size, size_t alignment)
{
	// Enforce minimum alignment
	if (alignment < 16)
		alignment = 16;

	// Convert alignment to shift amount
	int shift;
	for (shift = 4; shift < 32; shift ++)
	{
		if ((1U<<shift) == alignment)
			break;
	}
	if (shift == 32) // Invalid alignment
		return nullptr;

	// Initialize the pool if it is not ready
	if (!sLinearPool.Ready() && !linearInit())
		return nullptr;

	// Allocate the chunk
	MemChunk chunk;
	if (!sLinearPool.Allocate(chunk, size, shift))
		return nullptr;

	auto node = newNode(chunk);
	if (!node)
	{
		sLinearPool.Deallocate(chunk);
		return nullptr;
	}
	if (rbtree_insert(&sAddrMap, &node->node));
	return chunk.addr;
}
开发者ID:Bownairo,项目名称:ctrulib,代码行数:34,代码来源:linear.cpp

示例2: Set

  void Set(MemPool &pool, void *lms, const std::vector<const Factor*> &context) {
    lmstate = lms;

    numWords = context.size();
    lastWords = (const Factor**) pool.Allocate(
                  sizeof(const Factor*) * numWords);
    for (size_t i = 0; i < numWords; ++i) {
      lastWords[i] = context[i];
    }
  }
开发者ID:a455bcd9,项目名称:mosesdecoder,代码行数:10,代码来源:LanguageModel.cpp

示例3: Init

 void Init(MemPool &pool, const Factor *factor) {
   lmstate = NULL;
   numWords = 1;
   lastWords = (const Factor**) pool.Allocate(sizeof(const Factor*));
   lastWords[0] = factor;
 }
开发者ID:a455bcd9,项目名称:mosesdecoder,代码行数:6,代码来源:LanguageModel.cpp


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