我将 NetBeans 与 C++ 插件(版本 8.0.2)结合使用。我有一个名为“Settings”的类,它给了我大量错误,使得无法使用 NetBeans 调试此类。
hpp
文件中的所有错误都从这里开始:
bool SetSettingString(std::string Name, std::string defaultValue, bool override = true);
bool SetSettingFloat(std::string Name, float defaultValue, bool override = true);
bool SetSettingInt(std::string Name, int defaultValue, bool override = true);
bool SetSettingBool(std::string Name, bool defaultValue, bool override = true);
bool SetSettingDouble(std::string Name, double defaultValue, bool override = true);
错误从第一个 defaultValue
开始,也在 cpp
文件中,恰好在此时,NetBeans 将几乎所有代码高亮显示为红色,因为他无法解析任何标识符。代码干净,编译时甚至没有警告。
我的第一个猜测是,NetBeans 以某种方式将 defaultValue
解释为关键字,但将其更改为另一个名称不会改变任何内容。我还在 SO 上找到了清除用户缓存的建议,我这样做了(删除 ~/.cache/netbeans/8.0.2/
下的 index
目录)。
有人对如何解决这个问题有任何建议吗?提前致谢!
最佳答案
override
是自 C++11 以来的关键字(仅当在适当的上下文中使用时)- 它可能会使 NetBeans 感到困惑。
它不是不能用作标识符的普通关键字(如 for
等)- 由于向后兼容性(使用像你这样的代码 :)),override
只有出现在方法声明之后才会被视为关键字:
void fun() override;
这段代码强制编译器检查基类是否有虚方法fun
。
所以您的代码是正确的,但是检查关键字的简单 IDE 解析器可能会丢失。由于这只是参数名称,我建议更改它。
关于c++ - Netbeans 突出显示没有错误的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32372269/