We came across this issue in one of our applications with clang 3.5.0.
The following code compiles just fine in "C++03" mode, but fails in
"C++11" mode.  Is clang right here, or is it a compiler bug? Note that
the work around (commented out below) is pretty simple and works in
both modes, but I'm not sure why...

// (works) /usr/bin/clang++ ss.C
// (fails) /usr/bin/clang++ -std=c++11 ss.C
#include <sstream>
#include <iostream>

int main()
{
 std::istringstream is;

 int val = 42;

 // If you change the return type to "auto" you get the error message:
 // error: call to implicitly-deleted copy constructor of
'std::__1::basic_istream<char>'
 // but only in C++11.
 bool t = (is >> val);

 // This one works just fine with or without -std=c++11
 // bool ok = false;
 // if (is >> val)
 //   ok = true;

 return 0;
}


-- 
John

------------------------------------------------------------------------------
_______________________________________________
Libmesh-devel mailing list
Libmesh-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libmesh-devel

Reply via email to