Questo funziona:È possibile utilizzare un oggetto temporaneo per stringhe?
stringstream temp;
temp << i;
result_stream << transform(temp.str());
(transform
è una funzione che prende un string
e restituisce un string
; i
è un int
). Tuttavia, il mio tentativo di lasciare C++ 11 creare un oggetto temporaneo senza un nome non ha funzionato:
result_stream << transform((stringstream() << i).str());
ho pensato che avrebbe funzionato, dal momento che il secondo <<
dovrebbe semplicemente restituire il primo argomento e sarei in grado di utilizzare str()
su quello. Ma ottengo questo errore:
error: 'class std::basic_ostream<char>' has no member named 'str'
Sto usando g ++ 4.8.1 (MinGW-W64).
C'è un modo per realizzare questo (ad esempio scrivere codice come questo utilizzando un temporaneo senza nome)? (Il codice sopra è un po 'semplificata, e il codice effettivo comporta l'uso <<
su argomenti diversi int
.)
Per questa attività, prenderei in considerazione l'idea di creare una funzione che converta int in stringa, specialmente se g ++/MinGW-64 non supporta ancora std :: to_string –
possibile duplicato di [Usa un Stringhe di stringa anonimo per Costruire una stringa] (http://stackoverflow.com/questions/19665458/use-an-anonymous-stringstream-to-construct-a-string) –