相关疑难解决方法(0)

Boost.MPL和类型列表生成

背景

这适用于游戏引擎中的内存管理器.我有一个freelist实现,并希望有一个编译时列表,如果这些.(例如,MPL或Fusion矢量).这freelist对应于分配大小,当分配/解除分配大小小于常量的对象时,它们将转到相应的freelist.

最后,这意味着全局小对象分摊了常量时间分配和恒定时间释放.(好极了.)

问题

问题是生成我需要的类型,所以我最终可能会使用Fusion来实例化这些类型.使用的类型是(缩短等):

template <size_t N>
struct data_block
{
    size_t mSize; // = N
    char mData[N];
};

template <typename T, size_t ElementsPerPage,
    template <typename> class Allocator = std::allocator >
class freelist { /* ... */ };

template <typename T>
class callocator; // allocator that uses malloc/free
Run Code Online (Sandbox Code Playgroud)

freelist的将管理data_block的权力,以2的大小S,从最小去一个最大起动.所以我想要的是:

static const size_t MinimumSmallSize = 4; // anything smaller gets rounded up
static const size_t MaximumSmallSize = 512; // anything bigger …
Run Code Online (Sandbox Code Playgroud)

c++ boost metaprogramming boost-fusion boost-mpl

7
推荐指数
1
解决办法
4202
查看次数

标签 统计

boost ×1

boost-fusion ×1

boost-mpl ×1

c++ ×1

metaprogramming ×1