如何实现std :: has_virtual_destructor?

时间:2013-09-28 18:06:31

标签: c++ c++11 typetraits

如何实施std::has_virtual_destructor和类似检查?我已经尝试在Visual Studio中查看type_traits标题,但是有太多的宏和模板甚至可以得到一个想法。这种检查可以用任何合理简单的形式表达吗?我很想知道它的工作原理,因为现在我不知道。

1 个答案:

答案 0 :(得分:13)

许多类型特征需要编译器魔术:特征本质上为不同编译器提供的某些钩子提供了库接口。编译器如何实现这些钩子完全取决于它们,并且没有一致的接口。

在本次会议上讨论了如何在未来的修订版中添加反思,如果像std::has_virtual_destructor<T>这样的特征,最终可能导致图书馆实施。然而,在出现像反射之类的东西之前还需要一段时间。