C ++ - O que pode ser feito com erros internos do compilador?
Eu encontrei algo interessante e chato durante a programação de uma classe de matriz: erro interno do compilador. Eu estava disposto a invocar um construtor irmão na classe chamadaMatrix4<T>::Matrix4(Matrix4<T>&&)
. Essa é a parte do código que gera esse erro:
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]}
}
})
{
}
E esse é o erro interno do compilador (compilador é GCC e IDE é Code :: Blocks):
Erro interno do compilador: em process_init_constructor_array, em cp / typeck2.c: 1080
Supostamente, o compilador não pode analisar com êxito o meu código. Eu tenho certeza que a sintaxe está bem, no entanto. O que posso fazer nesta situação?