我的类 Matrix4x4
有一个构造函数,它接受 9 个值并通过初始化列表将它们复制到内部 T value[4][4]
成员中。但是,它不编译,我不完全确定为什么。具体来说,该错误表示:数组初始化需要用大括号括起来的初始化列表
。
我使用的是 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 }
})
{
}
最佳答案
如果您可以使用 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 } }
{
}
关于c++ - 数组初始化需要一个大括号括起来的初始化列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34703441/