我的班级Matrix4x4
有一个构造函数,它接受9个值并通过初始化列表将它们复制到内部T value[4][4]
成员中。但是,它没有编译,我不完全确定原因。具体而言,错误显示为:array initialization requires a brace-enclosed initializer list
。
我正在使用Visual Studio 2015。
template<typename T>
Matrix4x4<T>::Matrix4x4(
T aa, T ba, T ca,
T ab, T bb, T cb,
T ac, T bc, T cc
)
: value({
{ aa, ba, ca, 0 },
{ ab, bb, cb, 0 },
{ ac, bc, cc, 0 },
{ 0, 0, 0, 1 }
})
{
}
答案 0 :(得分:4)
如果您可以访问C ++ 11编译器,那么这是一个解决方案。
从初始化值中删除(
和)
。使用:
Matrix4x4::Matrix4x4(T aa, T ba, T ca,
T ab, T bb, T cb,
T ac, T bc, T cc)
: value{ { aa, ba, ca, 0 },
{ ab, bb, cb, 0 },
{ ac, bc, cc, 0 },
{ 0, 0, 0, 1 } }
{
}