Cannot bind 'std::basic_istream<char>' lvalue to 'std::basic_istream<char>&&'
Ostatnio zmodyfikowano 2013-12-21 16:45
kubawal Temat założony przez niniejszego użytkownika |
Cannot bind 'std::basic_istream<char>' lvalue to 'std::basic_istream<char>&&' » 2013-12-21 12:30:57 Witam! Mam z pozoru banalny problem: W C++11 jest funkcja to_string<T>() ale nie ma from_string<T>(), więc na potrzeby własnego projektu potrzebowałem ją sobie napisać (wiele razy już taką funkcję pisałem) template < typename T > inline T from_string( const string s, T defVal = T() ) { istringstream ss( s ); ss >> defVal; return defVal; }
I wywala mi błąd jak w temacie. Co jest nie tak? |
|
pekfos |
» 2013-12-21 14:38:09 #include <iostream> #include <sstream> using namespace std;
template < typename T > inline T from_string( const string s, T defVal = T() ) { istringstream ss( s ); ss >> defVal; return defVal; }
int main() { cout << from_string < int >( "a", 456 ); return 0; } Kompiluje się (i wypisuje 0 ;) ) |
|
kubawal Temat założony przez niniejszego użytkownika |
» 2013-12-21 15:45:13 Jaki kompilator? Ja mam GCC 4.8 z włączoną obsługą c++11.
A może to właśnie c++11 jest winą tego, że przedtem mi działało, a teraz nie... |
|
pekfos |
» 2013-12-21 16:03:56 To bez większego znaczenia. przedtem mi działało, a teraz nie... |
Podaj kod. I log. |
|
kubawal Temat założony przez niniejszego użytkownika |
» 2013-12-21 16:45:20 Już znalazłem rozwiązanie - w ten dziwny sposób kompilator komunikował, że operator wyjścia nie jest zdefiniowany dla klasy Vector2f. |
|
« 1 » |