Eclipse CDT索引和std :: unique_ptr

eng*_*erX 8 c++ eclipse ide eclipse-cdt c++11

我在这段代码中使用std :: unique_ptr,它按照我的预期编译和运行.

std::stringstream out;
out << std::setw(3) << std::setfill('0') << i;
std::unique_ptr<std::string> s(new std::string(out.str()));
s->insert(s->end()-2, 1, '.');
return std::move(s);
Run Code Online (Sandbox Code Playgroud)

但是,我从Eclipse CDT收到错误消息.在第四行:无法解析方法"插入",无法解析方法"结束".

以前,我在名称std :: unique_ptr的外观上也遇到了错误.这是通过设置预处理器符号__GXX_EXPERIMENTAL_CXX0X__和重建索引来解决的,如问题的答案中所述.

有没有办法让CDT理解s的类型是std :: string*并且它应该在std :: string中查找s-> insert()和s-> end()?

PS:我使用的是Eclipse 3.7.1和CDT 8.0.0.201106081058

PS2:我想在上面的问题中将其作为评论发布,但我不能,大概是因为我是新用户

Den*_*ton 4

Eclipse CDT 索引器似乎无法推导出 unique_ptr::pointer 类型,该类型也用作 operator->() 的返回类型。当您输入类似内容时您可以看到这一点

std::unique_ptr<Type *> ptr;
ptr.reset(new Type);
Run Code Online (Sandbox Code Playgroud)

将“检测到”错误,表明没有匹配的过载,并且唯一的候选者是reset(?)。所以这显然是一个错误。