для инициализации массива требуется список инициализаторов, заключенный в скобки



Мой класс 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 }
})
{

}
734   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

    Ничего не найдено.