我想实现一个具有编译时间常数大小(如std::array
)的数据结构。我希望能够像这样初始化这个数据结构:
MyStruct<3, int> example = {1, 2, 3};
使用像这样的构造函数可以很好地工作MyStruct(std::initializer_list<T> elements)
,但是编译器不会对我的内部结构和 强制执行相同的大小elements
,即使它们在编译时都是已知的。
我不能使用static_assert
,因为elements.size()
不是编译时间常数。
有没有办法在编译时强制执行与 in 相同的elements
大小MyStruct
?