簡體   English   中英

數組初始化需要用大括號括起來的初始化器列表

[英]array initialization requires a brace-enclosed initializer list

我的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 }
    })
{

}

如果您可以使用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 } }
{
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM