我还没有使用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