是否可以在构造时以某种方式将静态初始化器列表“传递”给容器包装器类,然后再初始化其成员?
struct bar {
bar(void * ptr): ptr(ptr) {}
void * ptr;
};
template<class T, int N>
struct foo
{
foo( args ) :store(args) {} // here the arg list should be passed
T store[N];
};
int main()
{
bar b[2]={NULL,NULL};
foo<bar,2> f(NULL,NULL); // This should be possible
}
不幸的是,我不能使用 STL 或 Boost。
让我解释一下,如果你怀疑它的用处。首先,这是一个非常“成熟”的设置。解释整个设置不足以在此处发布,也无济于事。想象一个例子,你有一个嵌套的表达式模板树,你在编译时遍历它并收集涉及的对象并将它们存储在像上面这样的容器包装器中。如果您还有其他问题,请询问。
编辑:不应调用T 的默认构造函数。