我還沒有使用C++ 11,所以我自己編寫了函數to_string(whatever)
。只有在不存在的情況下才能編譯它們。如果我切換到C++ 11,應該跳過它們。我有這樣的事情:如果在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
這顯然不起作用。是這樣的可能,如果是的話,怎麼樣?
它可以預先C++ 11,見http://cpp.sh/86ldr –
@ArnavBorborah好了,它不應該工作。 'std :: to_string'是C++ 11的東西 – xinaiz
就我個人而言,我認爲這是一個非常糟糕的做法,對這個問題沒有很好的答案。 C++標準不提供'to_string',而是'std :: to_string',這是非常不同的。這意味着,如果你的標準不支持它,你不能使用'std :: to_string'。現在再想一想 - 假設您已經使用C++ 11。現在怎麼辦?如果你從接受的答案中使用宏,你會在你的餘生中使用它而不是'std :: to_string'嗎?非常非常糟糕的主意。 – xinaiz