Nie używam jeszcze C++ 11, więc sam napisałem funkcje to_string(whatever)
. Powinny być kompilowane tylko wtedy, gdy nie istnieją. Jeśli przejdę do C++ 11, powinny one zostać pominięte. Mam coś takiego:Zdefiniuj funkcję/metodę, jeśli nie została zdefiniowana przed C++
#ifndef to_string
string to_string(int a){
string ret;
stringstream b;
b << a;
b >> ret;
return ret;
}
string to_string(double a){
string ret;
stringstream b;
b << a;
b >> ret;
return ret;
}
#endif
To nie działa najwyraźniej. Czy jest coś takiego, a jeśli tak, to w jaki sposób?
Działa pre-C++ 11, zobacz http://cpp.sh/86ldr –
@ArnavBorborah dobrze, to nie powinno praca. 'std :: to_string' jest rzeczą C++ 11 – xinaiz
Osobiście uważam, że jest to bardzo zła praktyka i nie ma dobrej odpowiedzi na to pytanie. Standard C++ nie poleca 'to_string', ale' std :: to_string', co jest bardzo różne. Oznacza to, że nie można użyć 'std :: to_string', jeśli twój standard go nie obsługuje. Teraz pomyśl jeszcze raz - załóżmy, że już używasz C++ 11. Co teraz?Jeśli używasz makra z zaakceptowanej odpowiedzi, czy przez resztę życia użyjesz go zamiast 'std :: to_string'? Bardzo, bardzo zły pomysł. – xinaiz