Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/140.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在C++;有没有一种(新的)方法来测试一个类在模板中是否有一个虚拟析构函数而不实例化一个实例?_C++_Polymorphism - Fatal编程技术网

C++ 在C++;有没有一种(新的)方法来测试一个类在模板中是否有一个虚拟析构函数而不实例化一个实例?

C++ 在C++;有没有一种(新的)方法来测试一个类在模板中是否有一个虚拟析构函数而不实例化一个实例?,c++,polymorphism,C++,Polymorphism,我四处看了看,很多讨论都说“不,你不能那样做”,但这一切都在快速发展,我想在一个无法访问对象实例指针的模板中测试这个特性。使用C++11或更高版本,模板提供了这些信息。可能重复:traits标题中有很多好东西。回答了很多问题:)一个腐蚀性的问题可能是,如果一个对象有一个虚拟析构函数,那么所有具有虚拟析构函数的对象是否都将它们保持在第一个vtable中的相同位置,因此在不确切知道指针来自哪个基类的情况下,可以调用它,只知道指针(void*)以及模板是否测试(当基类为true时,它确实知道基类的情况

我四处看了看,很多讨论都说“不,你不能那样做”,但这一切都在快速发展,我想在一个无法访问对象实例指针的模板中测试这个特性。

使用C++11或更高版本,模板提供了这些信息。

可能重复:traits标题中有很多好东西。回答了很多问题:)一个腐蚀性的问题可能是,如果一个对象有一个虚拟析构函数,那么所有具有虚拟析构函数的对象是否都将它们保持在第一个vtable中的相同位置,因此在不确切知道指针来自哪个基类的情况下,可以调用它,只知道指针(void*)以及模板是否测试(当基类为true时,它确实知道基类的情况)调用任何需要vtable.be的RTTI调用也可能是如此。