当我在Eclipse CDT Indigo和g ++(Debian 4.9.2-10)4.9.2下编译项目时,我有很多警告。从here开始,可能会有一些Eclipse解析器错误,可能还有一些外部库错误。
我当然会升级Eclipse,但我现在不能。
我希望能够抑制这些繁琐的警告。我阅读了手册here,但我仍然没有看到如何确定要设置的选项。我在Eclipse中取消选中了-Wall
选项,但没有任何改变。现在禁用所有Eclipse警告。
这是我的编译日志的pastbin。
答案 0 :(得分:1)
看起来有些东西吃了你的实际警告线。所有gcc警告都有"警告"至少在其中一行中。
编辑 gcc
的某些版本实际上会生成类似的消息("注意"行,"需要"行,"实例化来自"行...但没有实际"错误"或"警告"行)。看起来gcc中存在一个错误。 - 结束编辑。
在所有gcc警告中,我知道只有一个与重载有关并且有#34;注意"列出候选函数的子消息。警告读取
C ++说这些都是模棱两可的,即使第一次转换的最差转换比第二次转换的最差转换
并且无法关闭。如果您看到此类警告,则您的程序不合规,您应该修复它。
以下是此类不合规代码的示例。与您的功能签名匹配:
#include <string>
struct KeyWord
{
KeyWord(const std::string&);
operator std::string&() const;
};
struct A
{
bool operator() (const std::string&, const std::string&) const;
bool operator() (const KeyWord&, const KeyWord&);
};
int main ()
{
A a;
std::string s;
const std::string r;
a(s, r);
}
让第二个operator()
const
解决问题。