【发布时间】:2020-05-21 11:18:06
【问题描述】:
我想使用 C++ 中的类型实用程序检查 X 类是否具有 ANY 基类。
例如:
class X : public Y
{
}
static_assert(std::has_base_class<X>::value, "") // OK
但是:
class X
{
}
static_assert(std::has_base_class<X>::value, "") // Failed
标准库中是否存在类似于我想象中的has_base_class 的东西?谢谢!
【问题讨论】:
-
这似乎是 XY 问题,您为什么需要这些信息?顺便说一句,你想要的目前是不可能的
-
您可以检查特定的基类,但如果该类有任何一般情况,则不能。
-
你可以检查can-be-converted-to-single-type关系,如果足够接近的话。
-
@super 即使这样,基类也必须是公共的。
-
@lorro gcc 似乎不同意。
标签: c++ inheritance types std