c++ 条件包含指令中是否允许命名空间
Are namespace allowed in c++ conditional inclusions directive?
我目前在我的 c++ 项目中使用条件包含指令时遇到了这个问题。我想向社区寻求建议,看看我是否真的被允许做这样的事情。
我的伪代码如下:
BOOL myLogic(){
#ifdef GlobalVar1
if(MyNameSpace::CheckSomething()) //Compiler complains that 'MyNameSpace' is not a class or namespace name
{
MyClass myCls;
myCls.doSomething();
}
else
{
ErrorLog(ERROR_CHECKINGSOMETHING); //Compiler complains that ERROR_CHECKINGSOMETHING as undeclared idenifier
}
#endif
#ifdef GlobalVar2
...
#endif
}
我声明了大约 20 个条件包含,在定义我选择的 GlobalVar 后,我尝试编译我的解决方案,并在评论中报告了上述两个错误。
我希望通过以上述方式使用 #ifdef 和 #endif 来找出我是否做错了什么。当我试图测试我之前发布的问题中来自 SOF 成员的建议时:如何在 c++ 中单独编译源代码。谢谢!
我意识到错误是由某些标题未正确包含引起的。
我也包含了 #ifdef 包含指令来屏蔽头文件,因此以前包含的一些必要的标头现在不再包含在内,因为不满足包含条件。
我已经通过在基类中添加必要的头文件来解决此问题。
相关文章:
- 是否可以将函数导入命名空间,但不能导出它?
- VS2017 是否更改了 C++ 中访问 C# 命名空间的方式?
- C++ - 是否将常量幻数放入命名空间
- 初始化命名空间中的变量是否类似于将它们初始化为类成员?
- 是否将命名空间范围文件本地 (.cpp) 常量放在匿名命名空间中
- c++ 内联友元函数是否会导致命名空间之间的名称隐藏?
- 将以"_[a-z0-9]"开头和"using"的标识符导入全局命名空间是否定义良
- 是否可以在相同的命名空间中,但在不同的嵌套项目中定义具有相同名称的类
- 是否可以在 c ++ 中查看命名空间的所有内容?
- 是否有 GCC 警告,用于使用 C 库中的符号而不是通过命名空间 std?
- 是否有一个很好的方法可以在C 11中打印出像JSON一样的Trie结构(仅迭代解决方案)的扁平命名空间
- 使用显式命名空间限定符时模板实例化行为是否发生变化?
- 调用 ADL 时,表达式和命名空间之间是否会发生冲突
- winrt 命名空间是否具有控制台函数?
- 一个命名空间是否可以是另一个命名空间的成员
- 命名空间是否可以用作C++中的对象模板
- 在匿名命名空间中使用命名空间是否安全
- 隐藏第三方命名空间是否危险
- C++:当前命名空间是否覆盖其他命名空间
- c ++命名空间是否有类似".."?