【发布时间】:2014-06-23 15:11:37
【问题描述】:
在 C++11 项目中,我必须使用外部 C 库。这个库主头文件定义了
typedef uint16_t char16_t;
因此,包含此库的 C++ 程序的编译失败,并显示以下消息:
redeclaration of C++ built-in type ‘char16_t’
我唯一的想法是重新打包整个库,但是因为char16_t 在这个库中很普遍,所以它会非常耗时(如果可能的话)。有没有一些明智的方法来处理这个问题?
编辑:
我还有另一个想法,即删除有问题的行并将每次出现的 char16_t 替换为 uint16_t,但我必须修改第三方库标头,我并不特别喜欢这个想法(可能会有更多类似的错误)。所以我也想知道在包含头文件时是否有一些好的方法来处理 C++ 和 C 之间不兼容的更广泛问题。
【问题讨论】:
-
C++0x11。我还没听说过。 -
@ParkYoung-Bae: en.wikipedia.org/wiki/C%2B%2B17 ;)
-
不知道
#define在你眼里是不是懂事... -
@PlasmaHH
C++17如何匹配C++0x11模式?不过它匹配C++1y。 OP 的意思是C++0x == C++11。 -
@PlasmaHH 哦,我的天哪... touché。那个很好。我必须使用更浓的咖啡。
标签: c++ c c++11 compiler-errors