1

我时不时地犯一个运算符重载错误,导致 g++ 生成令人沮丧的大量难以理解的编译器错误消息,请考虑以下示例:

int someValue ;
vector <vector <int> > 2d ;
while(2d [i] > someValue) someFunction();

显然,我缺少“2d”向量的第二个索引。不幸的是,g++ 没有简明扼要地报告它未能找到“大于”运算符的匹配项,而是详细列出了每个与比较操作部分匹配的重载候选者,包括一些深埋在标准库中的非常讨厌的重载候选者。

任何人都可以提供一些关于为什么这是处理重载失败的首选方法的见解吗?是否有任何选项可以限制或减少此编译器输出?,谢谢。

4

1 回答 1

1

尝试STLFilt。但是,它有一段时间没有更新。

一个好的 IDE 应该对这些烦人的额外错误进行一些过滤——在我使用 Eclipse 的时候,它有很好的过滤——但是我现在不知道它是如何做到的。

我个人的做法是跳过我不理解的所有内容,专注于我理解的错误;)

于 2012-09-26T22:10:49.730 回答