求教一个通过模板实现数组初始化的方法

rchord 2010-03-19 05:19:35
如题,代码如下

class AAA
{
protected:
explicit AAA(byte* const first) : mFirst(first) {}
public:
virtual ~MemStorageBase(void) {}
private:
AAA(const AAA&);
AAA& operator =(const AAA&);
protected:
byte* mFirst;
};
template <uint partitionSize>
class BBB : public AAA
{
static_assert(partitionSize >= sizeof(byte*), "partitionSize >= sizeof(byte*)");
public:
typedef uint size_type;
public:
BBB(void) : AAA(nullptr) {}
BBB(byte* const block, size_type size) : AAA(nullptr) {}
private:
BBB(const BBB&);
BBB& operator =(const BBB&);
};

template <typename MemPolicy, template MemStorage, uint count>
class CCC
{
static_assert(count > 0, "count > 0");
public:
typename uint size_type;
enum { MEMORY_ALIGNMENT = sizeof(byte*); }
public:
CCC(void)
{
// 在这里能够实现对”MemStorageBase mChunks[count]“的编译时初始化。效果如:
// mChunks = { MemStorage<MEMORY_ALIGNMENT * 1>, MemStorage<MEMORY_ALIGNMENT * 2> ... MemStorage<MEMORY_ALIGNMENT * count>};
}

private:
CCC(const CCC&);
CCC& operator = (const CCC&);
private:
// 希望这里能够被编译时初始化为
byte mChunks[sizeof(MemStorage) * count];
};
...全文
87 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
rchord 2010-03-19
  • 打赏
  • 举报
回复
在线等候指教哈

64,687

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧