для инициализации массива требуется список инициализаторов, заключенный в скобки
Мой класс 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 }
})
{
}
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 } } { }
Comments