假设我有一个 .cpp
文件,我必须在其中包含一个第三方头文件来声明一些符号(我们称它为 div
)。我不需要这个符号,但我需要定义我自己的 div
符号。但是,原始符号可能会被头文件的其他部分使用。是否可以从全局命名空间中删除符号(类似于 undef
宏)?
我想要这样的东西:
#include <string> //stdlib.h defines div symbol
//do some symbol removal magic here
std::string div;
使用带有 -std=c++11
选项的 gcc-4.7/clang 进行编译。
最佳答案
您不能从定义符号的命名空间(包括全局命名空间)中删除符号。
将您自己的 div
包装在您自己的命名空间中。
关于C++ 移动/删除符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13047578/