我正在尝试编写一个链接到第三方本机C ++库的托管C ++(又名C ++ / CLI)库。第三方库的头文件包含使用nullptr
关键字的构造函数定义。我的托管项目无法编译,因为托管编译器将nullptr
定义为托管空引用,而第三方使用它来表示本机/未托管空指针。如何在不修改第三方库的头文件的情况下解决此问题?
有关nullptr
与__nullptr
的参考,请参阅:https://msdn.microsoft.com/en-us/library/4ex65770.aspx
答案 0 :(得分:5)
C ++ / CLI支持与C ++相同的预处理程序指令,对吧?这个可怕的黑客怎么样:
#define _ALLOW_KEYWORD_MACROS
#define nullptr __nullptr
#include "header.h"
#undef nullptr