【发布时间】:2018-05-15 16:04:32
【问题描述】:
假设我有一个基类
class Base {};
std::is_trivial<Base>::value 是 true。有没有办法强制从Base 派生的所有类也变得微不足道?
也就是说,我该如何修改Base,从而导致编译错误?
class Derived : public Base {
Derived() {}
};
【问题讨论】:
-
你是专门问
private继承的使用吗? -
IMO 这是不可能的。另一方面,如果您降低要求,则有可能。也许检查从
Base派生并用于特定函数的类型是微不足道的。为什么你需要这种特质是真实的? -
我认为 YSC 是正确的。我在想你可以使用 CRTP,但你无法检查派生类是否微不足道,因为它在基类中不完整。
-
@NathanOliver 而且你不能强制子类的作者作弊或滥用 CRTP。
-
鉴于平凡的类不能是多态的,你为什么要关心?
标签: c++ typetraits