行列クラスをプログラミングしているときに、興味深い厄介な問題に遭遇しました: 内部コンパイラ エラーです。というクラスの姉妹コンストラクターを呼び出すつもりでした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 内
おそらく、コンパイラは私のコードを正常に解析できません。ただし、構文は問題ないと確信しています。この状況で何ができますか?