[cfe-users] Failed formatted input using std::istream
Dmitri Shubin
sbn at tbricks.com
Tue May 7 07:35:29 PDT 2013
Hello!
For the following small test I got different result when using clang w/
libstdc++ and libc++:
#include <sstream>
#include <iostream>
int main()
{
std::istringstream iss("-a");
unsigned i = 12345;
iss >> i;
std::cout << i << std::endl;
return 0;
}
$ clang++ a.cpp
$ ./a.out
12345
$ clang++ -stdlib=libc++ a.cpp
$ ./a.out
0
$ clang -v
Apple LLVM version 4.2 (clang-425.0.27) (based on LLVM 3.2svn)
Target: x86_64-apple-darwin12.3.0
Thread model: posix
If my understanding of the C++ standard (C++03) is correct libstdc++ is
right here, since 22.2.2.1.2p1 [lib.facet.num.get.virtuals] says
"If an error occurs, val is unchanged; otherwise it is set to the
resulting value."
Or am I missing something and I shouldn't count on particular result here?
Thanks!
More information about the cfe-users
mailing list