c++ - std::has_virtual_destructor 是如何实现的?

标签 c++ c++11 typetraits

如何实现 std::has_virtual_destructor 和类似的检查?我试过查看 Visual Studio 中的 type_traits header ,但宏和模板太多,甚至无法理解。这张支票可以用任何合理简单的形式表示吗?我很想至少知道它的工作原理,因为现在我还不知道。

最佳答案

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

在当前的 session 上,讨论了在未来的修订中添加反射(reflection),如果像 std::has_virtual_destructor<T> 这样的特征,最终可能会导致库的实现。 .然而,像反射这样的东西还需要一段时间才能出现。

关于c++ - std::has_virtual_destructor 是如何实现的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19070084/

相关文章:

c++ - typecast<int> 的舍入问题

c++ - 如何将双引号放入字符串文字中?

c++ - 设计一个返回有效字符串的方法或函数

c++ - 说真的, copy-and-swap 习语真的应该如何工作!我的代码失败

c++ - 许多嵌套 std::conditional_t 的替代品?

c# - MVC 文本编辑器场景中模型的作用

c++ - 从 std::string 类继承时跳过添加构造函数

c++ - C 的 SOLID 原则实现

c++ - 我可以通过类型特征来确定指针是否为整数类型吗?

c++ - 类模板的成员模板函数上的enable_if