#include <sstream>
#include <iostream>
int main() {
double val;
std::stringstream ss("6.93758e-310");
ss >> val;
std::cout << "fail: " << ss.fail() << std::endl
}
Run Code Online (Sandbox Code Playgroud)
......我得到不同的行为:
ss.fail()未设置,而可能需要注意的是,在这两种情况下,errno都设置为ERANGE.
另外,在本地我得到了与clang和gcc相同的行为,除非我明确地使用libc ++和clang(-stdlib=libc++)而不是glibc.
我不确定正确的行为是什么,但我觉得它应该是一致的.