0

行列クラスをプログラミングしているときに、興味深い厄介な問題に遭遇しました: 内部コンパイラ エラーです。というクラスの姉妹コンストラクターを呼び出すつもりでしたMatrix4<T>::Matrix4(Matrix4<T>&&)。これは、このエラーを生成するコードです。

template<typename T>
Matrix4(Matrix4&& matrix_) = default;

template<typename T>
Matrix4<T>::Matrix4(T (&&matrix_)[4][4]):
    Matrix4({
        .data = {
            {matrix_[0][0], matrix_[0][1], matrix_[0][2], matrix_[0][3]},
            {matrix_[1][0], matrix_[1][1], matrix_[1][2], matrix_[1][3]},
            {matrix_[2][0], matrix_[2][1], matrix_[2][2], matrix_[2][3]},
            {matrix_[3][0], matrix_[3][1], matrix_[3][2], matrix_[3][3]}
        }
    })
{

}

そして、これは内部コンパイラ エラーです (コンパイラは GCC で、IDE は Code::Blocks です):

内部コンパイラ エラー: cp/typeck2.c:1080 の process_init_constructor_array 内

おそらく、コンパイラは私のコードを正常に解析できません。ただし、構文は問題ないと確信しています。この状況で何ができますか?

4

1 に答える 1