gpt4 book ai didi

C++ - 内部编译器错误可以做什么?

转载 作者:行者123 更新时间:2023-11-28 00:43:51 26 4
gpt4 key购买 nike

我在编写矩阵类时遇到了一些有趣且烦人的事情:内部编译器错误。我愿意在名为 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):

internal compiler error: in process_init_constructor_array, at cp/typeck2.c:1080

应该是编译器无法成功解析我的代码。不过,我很确定语法没问题。在这种情况下我该怎么办?

最佳答案

尝试用不同的编译器编译它。您的代码可能存在非常细微的错误,另一个编译器可能会告诉您更多信息。我建议尝试 Clang ,因为它因拥有better error messages而被广泛吹捧,尽管最新版本的 GCC 正在寻求改变这一概念。

如果它在两个编译器上都失败而没有看到真正的错误消息,那么您拥有一些针对此错误的最好的测试代码并提交有关它的错误报告将受到编译器社区的高度赞赏。

关于C++ - 内部编译器错误可以做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17391748/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com