我正在尝试为向量算术编写一个容器类。对象的大小是静态的:
template<typename T, unsigned N>
class vec{
T data[N] = {0};
public:
vec(std::initializer_list<T> ini){
std::copy(ini.begin(), ini.end(), data);
}
}
这就是我走多远。
但是,我测试了 std::array 类进行比较,我注意到如果初始化列表太长或太短,它会以某种方式做出静态断言。
std::array<float, 2> a = {1, 2, 3, 4} <- instant error message from the visual studio ide
在我的课堂上,我必须在运行时检查初始化列表的长度。
我假设 std::array 类以某种方式管理它以使用初始化列表表示法直接初始化数据,而没有 std::initializer_list 类。
是否可以像 std::array 一样初始化我的类?