令人困惑的是GCC stringstream typedef

时间:2016-12-21 20:15:47

标签: c++ eclipse

我的Eclipse索引器烦人地无法解析stringstream typedef的目标,并在整个地方看到错误。

我的意思是,索引器会正确地注释stringstream ss;声明,但它会抱怨对象的任何进一步使用(例如ss.str()),例如“方法无法解决”

以下再现了行为:在菜单中,文件>新> C ++项目> Hello World项目,Linux GCC;然后用

替换内容
#include <sstream>
int main() {
    std::stringstream ss; // fine
    ss.str(); // "method str could not be resolved"
    std::basic_stringstream<char> ss2;
    ss2.str(); // fine
}

我尝试过各种各样的东西,重建索引,“清理项目”,用eclipse -clean重新启动Eclipse ...对于我的真实项目,我也尝试从Eclipse中删除项目,删除.project / .cproject文件并再次导入(作为makefile项目)。

但到目前为止无济于事,至少对我的真实项目而言。对Hello World项目来说奇怪的是,上面的随机组合有时会解决问题(在某些情况下,我可能会在我的列表中有两个Hello World项目,一个没有它的错误一个。)

此外,如果我打开iosfwd标题(包含stringstream声明/ typedef)basic_stringstream标记出现白色/未注释,与其他类名称不同(例如basic_iostream会出现绿色作为班级名称应该)。无论我是否将访问声明的项目看作stringstream :: str作为错误,都是如此。

版本:Eclipse-CDT 4.5.2 / 8.8.1,GCC 5.4.0

问题可能来自哪些想法?

1 个答案:

答案 0 :(得分:0)

我发现了一个有点普遍的黑客,它主要解决了这个问题:

#define stringstream basic_stringstream<char>

(通过项目属性&gt;一般&gt;路径和符号&gt;符号)