Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Cannot bind 'std::basic_istream<char>' lvalue to 'std::basic_istream<char>&&'

Ostatnio zmodyfikowano 2013-12-21 16:45
Autor Wiadomość
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)

C/C++
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?
P-99718
pekfos
» 2013-12-21 14:38:09
C/C++
#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 ;) )
P-99724
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...
P-99737
pekfos
» 2013-12-21 16:03:56
Jaki kompilator?
To bez większego znaczenia.

przedtem mi działało, a teraz nie...
Podaj kod. I log.
P-99740
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.
P-99743
« 1 »
  Strona 1 z 1