我想知道在 C++ 中是否有可能以某种方式处理以下情况:
情况1) (容易处理)
class BasicFacility { }
template <typename U1, typename U2> class Facility : public BasicFacility { }
现在假设我们想要一些编译时断言,并且我们想要检查任意类型是否typename T
对Facility
. 这很简单:
(boost::is_base_of<BasicFacility, T>::type)
情况2) (???)
现在让我们假设在同样的情况下我们只有我们的模板类:
template <typename U1, typename U2> class Facility { }
显然我们不能使用与情况一相同的解决方案,因为我们不能编写statement<Facility, T>
(Facility
本身就是一个模板)。
那么,有没有一种方法(可能是肮脏的,涉及丑陋的演员表,特定于对齐方式,任何可能有效的方法)来检查 someT
实际上是否等于 sometemplate type
而无需引入特定的空(辅助)基类(因为有时你根本不能)?
谢谢你。