如何使g ++运算符重载错误更简洁?

时间:2012-09-26 21:33:26

标签: c++ compiler-errors g++ operator-overloading

我一次又一次地犯了一个操作符重载错误,导致g ++生成令人沮丧的不可穿透的编译器错误消息卷,请考虑以下示例:

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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

我个人的做法是跳过我不理解的一切,专注于我理解的错误;)