我知道这是一个老问题,但我在 Ubuntu 16.04 LTS 上遇到了与 Eclipse Neon ( v4.6.0 ) 类似的问题
我的代码是:
stringstream l_Buffer;
l_Buffer << "test" << endl;
const char* l_Temp = l_Buffer.str().c_str();
eclipse报3个错误:
- 'endl' 的无效重载
- 方法“c_str”无法解析
- 方法“str”无法解析
我尝试了一堆东西,重建索引,弄乱代码分析工具(以与我的构建相同的方式配置它),然后写std::endl
......一切都无济于事。
在我的案例中解决所有三个错误的方法是替换
stringstream l_Buffer;
和:
basic_stringstream<char> l_Buffer;
注意: Ctrl + Clickingstringstream
将引导您进入其 typedef 定义,iosfwd.h
其中:
/// Class for @c char mixed input and output memory streams.
typedef basic_stringstream<char> stringstream;