如何在编译时检查类是否是抽象的?

aby*_*s.7 4 c++ abstract-class static-assert compile-time

通过抽象类我的意思是具有至少一个纯虚方法的类.如果检查显示该类不是抽象的,我希望编译失败.

它甚至可能吗?

rig*_*old 9

使用std::is_abstract.

#include <type_traits>

static_assert(std::is_abstract<T>(), "T ought to be abstract.");
Run Code Online (Sandbox Code Playgroud)

看到它在行动.