【发布时间】:2014-10-17 18:55:43
【问题描述】:
您可以使用std::is_base_of 来检查一个类是否从某个基类继承,但我如何知道一个类是否直接从该类继承(即间接从该类继承)?
【问题讨论】:
-
你是说如果
Derived1继承自Base,而Derived2继承自Derived1,你想要返回false给定Derived1和Derived2但返回的东西true给定Base和Derived2? -
@RSahu 是的。如果可能的话,我对 C++11 解决方案持开放态度。副本中的答案也很好。
-
这不是另一个问题的重复。如果有什么相反的。顺便说一句,
is_base_of不仅检测直接碱基,IIRC -
N2965 引入了
bases和direct_bases元函数 (discussed before),这将使您的目标很容易实现。 Support apparently already exists in GCC.
标签: c++