代码完成仍然在undef之后确认宏

时间:2013-12-21 23:00:50

标签: c++ visual-studio macros

我定义了一堆宏,只为项目的一小块区域内的目的服务。我想取消定义它们以便它们不会污染全局命名空间,但Visual Studio仍然在其他文件中确认#undef之后它们的存在。 IE:

//A.hpp

#define A_MACRO

...

//~A.hpp

#undef A_MACRO

...

//B.hpp

#include "A.hpp"

#include "~A.hpp"

...

//main.cpp

#include "B.hpp"

A_MACRO // <- code completion recognizes this despite it being undefined
        // and invalid

我只需要处理这个问题,还是有另一种方法可以完成我想要做的事情?

编辑:看起来Code :: Blocks正好将其删除到#undef之外,所以它必须是Visual Studio设置中的内容。

1 个答案:

答案 0 :(得分:0)

它是一个非常有效的标签。

请考虑您可能想要添加的代码中的某处:

#ifdef A_MACRO
...
#endif

甚至:

#ifndef A_MACRO
...
#endif

如果您的Intellisense退出工作会不会很糟糕?

宏标签是这两种情况下的有效标签。是否当前定义了宏。