MinGW не поддерживает std :: defaultfloat, как провести с ним?

Каждый компилятор имеет свой набор реализованных и не реализованных функций стандарта, что печально, но это жизнь.

При попытке скомпилировать наш проект для 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

Решение

Почему бы просто не написать:

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

Это будет просто работать. (Это не так красиво, но это красивее, чем #ifdefс.)

Или вы можете написать свой собственный манипулятор, который делает то же самое.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]