Windows上的代码::块13.12即使使用-std=c++11也无法识别std::codecvt

Code::Blocks 13.12 on Windows not recognizing std::codecvt even with -std=c++11

本文关键字:c++11 codecvt std 识别 -std 代码 Windows      更新时间:2023-10-16

我正在编译一个openFrameworks项目,该项目使用Windows8.1上的Code::Blocks 13.12上的ofxTrueTypeFont,版本为4.8.1。

它最终出现了一个错误:

...ofxTrueTypeFontUC.cpp | fatal error: codecvt: No such file or directory

我甚至在编译器标志中打开了-std=c++11。这是一个有类似问题的人,他显然还没有找到解决办法。

我应该如何编译这个?同时,我将尝试更新mingw32-g++。。。

编辑:

看来4.8.1是最新版本。。。尽管有gcc-5.0.0。

这不是一个真正的答案,但欢迎来到现实生活中。理论上,应该有一个单独的C++引用,带有版本(C+11、C+14…),所有编译器都应该遵循这一点,允许指定的所有内容,不允许其他所有内容。

在现实世界中,编译器可以拒绝规范允许的构造,并接受规范不允许的其他构造。众所周知,2010年之前的MSVC非常不愿意标准化,gcc允许大量扩展,而且看起来你发现了一个地方,它没有完全实现C++11规范。

您可以尝试另一个接受您输入代码的编译器,也可以像上个世纪的老C程序员一样:为您的开发环境找到正确的包含文件。也许#include <locale>就足够了。。。

顺便说一句,问题不完全在编译器部分,而是在标准库实现上。。。