MinGW不支持std :: defaultfloat,如何引导它呢?

时间:2016-02-03 09:47:23

标签: c++ c++11 gcc mingw precompile

每个编译器都有自己的一套已实现和未实现的标准功能,这很可悲,但却是生命。

在尝试将我们为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

那当然不起作用,命名空间的原因,我想知道是否有更好的替代预编译器指令。

1 个答案:

答案 0 :(得分:2)

为什么不写:

    stream.unsetf(std::ios_base::floatfield);
    stream << value;

那就行了。 (它不是很漂亮,但它比#ifdef更漂亮。)

或者你可以编写自己的操纵者来做同样的事情。