如何#include在C ++ / CLI项目中使用nullptr的第三方本机C ++标头

时间:2016-03-04 23:52:32

标签: c++ c++-cli nullptr

我正在尝试编写一个链接到第三方本机C ++库的托管C ++(又名C ++ / CLI)库。第三方库的头文件包含使用nullptr关键字的构造函数定义。我的托管项目无法编译,因为托管编译器将nullptr定义为托管空引用,而第三方使用它来表示本机/未托管空指针。如何在不修改第三方库的头文件的情况下解决此问题?

有关nullptr__nullptr的参考,请参阅:https://msdn.microsoft.com/en-us/library/4ex65770.aspx

1 个答案:

答案 0 :(得分:5)

C ++ / CLI支持与C ++相同的预处理程序指令,对吧?这个可怕的黑客怎么样:

#define _ALLOW_KEYWORD_MACROS
#define nullptr __nullptr
#include "header.h"
#undef nullptr