每个编译器都有自己的一套已实现和未实现的标准功能,这很可悲,但却是生命。
在尝试将我们为VS完成的项目编译为MinGW时,我收到了错误
std::defaultfloat
ERROR: "defaultfloat" is not member of "std"
似乎他的C ++ 11功能仍未实现。
我想制作一些条件代码以避免此错误,但不删除该功能:
#ifdef std::defaultfloat
stream << std::defaultfloat << value;
#else
// My own temporal equivalent
#endif
那当然不起作用,命名空间的原因,我想知道是否有更好的替代预编译器指令。
答案 0 :(得分:2)
为什么不写:
stream.unsetf(std::ios_base::floatfield);
stream << value;
那就行了。 (它不是很漂亮,但它比#ifdef
更漂亮。)
或者你可以编写自己的操纵者来做同样的事情。