【发布时间】:2020-04-15 19:19:25
【问题描述】:
此代码 sn-p (https://gcc.godbolt.org/z/hKDMxm):
#include <iostream>
#include <sstream>
using namespace std;
int main() {
auto s = (ostringstream{} << "string").str();
cout << s;
return 0;
}
使用 msvc 按预期编译和运行,但使用 clang 9.0.0 和 gcc 9.2 编译失败,并给出以下错误消息:no member named 'str' in 'std::basic_ostream<char>'。看看https://en.cppreference.com/w/cpp/io/basic_ostringstream/str,显然str() 是ostringstream 的成员。为什么 clang 和 gcc 无法编译这段代码?
【问题讨论】: