2

現在、Visual Studio には問題があり、次のコードがコンパイルされず、エラーが発生します。

エラー C2797: 'vec::v': メンバー初期化子リスト内のリスト初期化または非静的データ メンバー初期化子が実装されていません

#include <array>

template<class T, int C>
struct vec
{
    typedef T value_type;

    enum { num_components = C };

    std::array<T, C> v;

    template<typename ...Args>
    vec(Args&&... args) : v{{args...}} {}
};

template<class T>
struct vec2 : vec<T, 2>
{
    vec2(T x, T y) : vec(x, y) {}
};

int main(void)
{
    vec<float, 2> v(10.0f, 20.0f);  
}

そのためのMicrosoft Connect チケットはクローズされていますが、「内部リストの明示的な構築を使用する」ことを推奨する MSDN の記事があります。これを行う方法がわかりません。また、コードは私 (初心者) には非常に異質に見えます。

std::array を使用した例を手伝ってくれる人はいますか?

4

1 に答える 1