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?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage