我正在围绕一个框架编写一个软件,我正在使用的一个类(确切地说,扩展)在更高版本中重命名。 有没有办法在C ++ 11中编写一些宏/模板,以确定是否在代码中声明了具有某个名称的类? 我想要完成的一个例子如下。 假设文件class_include.h包含A类的定义:
class A
{
...
};
或B类:
class B
{
...
};
并且C类尝试扩展声明:
#include <class_include.h>
#if (class A is declared)
class C : public A
#else // class B is declared
class C : public B
#endif
{
...
};
注意:我想到了尝试检查框架的一个版本,但这个问题的答案让我感兴趣。 我也无法更改任何框架头文件。可接受的答案取决于是否定义了类(这意味着声明),在我的情况下,如果定义了类,则声明该类。