c++ - 如何检测模板参数是否是内置的?

标签 c++ visual-studio

我想使用 SFINAE 停止显式调用析构函数,因为 MSVS 2010 认为在内置类型指针上完成时这是一个错误。

我该怎么做?

最佳答案

您可能会从错误的角度看待它:您不应该排除有效的方法,您应该检测有效的方法。在您的情况下,您正在尝试检查给定类型 T 是否是一个类,因此您可以调用析构函数。

就是说,你想要 std::is_class .如果它不适用于您的编译器,则有 Boost.TypeTraits' boost::is_class适用于 VC++ 8 及更新版本。

关于c++ - 如何检测模板参数是否是内置的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18907950/

相关文章:

c++ - atoi 中的 null 将值转换为 0

git - 如何将当前分支与 Visual Studio 2019 中的另一个分支进行比较?

sql-server - TFS 数据库部署解决方案

c# - 知道 Visual Studio 中结构内的变量何时变为空吗?

javascript - Visual Studio 中的 JSLint "Stopping"

c++ - 通过 Threadcreate 传递时指针值发生变化

c++ - 位字段与 stdint 定义

c++ - 在 C++ 中使用变量创建部分文件名

c++ - 使用 CMake 安装的 PDB 文件

c++ - 使用 g++ 和 Makefile 编译 c++ 时可执行文件的大小非常大