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

How to make g++ operator overloading errors more concise?

本文关键字:错误 简洁 重载 运算符 何使 g++      更新时间:2023-10-16

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

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

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

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

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

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

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