我想使用 SFINAE 停止显式调用析构函数,因为 MSVS 2010 认为在内置类型指针上完成时这是一个错误。
我该怎么做?
最佳答案
您可能会从错误的角度看待它:您不应该排除不有效的方法,您应该检测有效的方法。在您的情况下,您正在尝试检查给定类型 T
是否是一个类,因此您可以调用析构函数。
就是说,你想要 std::is_class
.如果它不适用于您的编译器,则有 Boost.TypeTraits' boost::is_class
适用于 VC++ 8 及更新版本。
关于c++ - 如何检测模板参数是否是内置的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18907950/