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

MinGW do not support std::defaultfloat, how to lead with it?

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

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

这当然行不通,命名空间的原因,我想知道是否有更好的预编译指令替代方案。

为什么不直接写:

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

那就行了。 (没有那么漂亮,但比 #ifdefs 漂亮。)

或者您可以编写自己的操纵器来执行相同的操作。