C ++ - Was kann man mit internen Compilerfehlern machen?
Beim Programmieren einer Matrixklasse bin ich auf etwas Interessantes und Ärgerliches gestoßen: Interner Compilerfehler. Ich war bereit, einen Schwester-Konstruktor in der Klasse namens aufzurufenMatrix4<T>::Matrix4(Matrix4<T>&&)
. Dies ist der Code, der diesen Fehler generiert:
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]}
}
})
{
}
Und das ist der interne Compiler-Fehler (Compiler ist GCC und IDE ist Code :: Blocks):
Interner Compiler-Fehler: in process_init_constructor_array unter cp / typeck2.c: 1080
Angeblich kann der Compiler meinen Code nicht erfolgreich analysieren. Ich bin mir ziemlich sicher, dass die Syntax in Ordnung ist. Was kann ich in dieser Situation tun?