我有一个简单的RAII课程,以确保一些句柄被妥善处理.现在我想声明,没有人会偶然添加任何虚拟方法.我看到它的方式,我需要断言该类没有vtbl指针.
我该怎么做?是否可以在编译时断言?
编辑
我会安排桌面编译器.据我所知,没有桌面c编译器没有使用vtbl来实现多态.
解决方法
如果您有C 11库,可以使用
std::is_polymorphic<T>
:
If T is a polymorphic class (that is,a class that declares or inherits at least one virtual function),provides the member constant value equal true. For any other type,value is false.