gpt4 book ai didi

c++ - undef 后代码补全仍然确认宏

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:23:17 27 4
gpt4 key购买 nike

我定义了一堆宏,它们只在项目的一小部分范围内发挥作用。我想取消定义它们,这样它们就不会污染全局命名空间,但 Visual Studio 仍然会在其他文件中的#undef 之后确认它们的存在。即:

//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 的设置中。

最佳答案

这是一个完全有效的标签。

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

#ifdef A_MACRO
...
#endif

甚至:

#ifndef A_MACRO
...
#endif

如果您的 Intellisense 停止工作,那会不会很糟糕?

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

关于c++ - undef 后代码补全仍然确认宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20724467/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com