小编nm_*_*_tp的帖子

如何检查是否在C++中声明了一个类?

我正在围绕一个框架编写一个软件,我正在使用的一个类(准确地说,扩展)在更高版本中重命名.有没有办法在C++ 11中编写一些宏/模板,以确定是否在代码中声明了具有某个名称的类?

我想要完成的一个例子如下.假设文件class_include.h包含类的定义A:

class A
{ 
...
};
Run Code Online (Sandbox Code Playgroud)

或者班级B:

class B
{ 
...
};
Run Code Online (Sandbox Code Playgroud)

和类C尝试扩展声明的那些:

#include <class_include.h>

#if (class A is declared)
class C : public A
#else // class B is declared
class C : public B
#endif
{
...
};
Run Code Online (Sandbox Code Playgroud)

注意:我想到尝试检查框架的一个版本,但这个问题的答案让我感兴趣.我也无法更改任何框架头文件.

编辑:接受的答案取决于是否定义了类(这意味着声明),在我的情况下,如果定义了类,则声明该类.

c++ c++11

14
推荐指数
3
解决办法
385
查看次数

标签 统计

c++ ×1

c++11 ×1