检查是否有空的驱动器

Check for empty destructor

本文关键字:驱动器 是否 检查      更新时间:2023-10-16

是否有一种方法可以使用模板,宏或两者的组合来检查一类内部以及其继承的类中的空destructor?( is_trivaly_destructible 不产生我需要的东西)。

class Test
{
   public:
   ~Test(){};
};
class Temp2 : public Test
{
};

一个构造函数"为空"并不意味着任何意义,因为编译器的任何非POD成员对象都会/隐式/会破坏/会破坏(即使没有声明destructor noted destructor)。/p>

所以,实际上您想要的可能是

  • std::is_pod<T>::value

    当心:MSVC弄错了(例如,对于struct X : std::array<int, 4> {} pod)

  • std::is_trivial<T>::value

的想法是,只有在构造函数也不做任何魔术的情况下,才能跳过构造函数。建筑和破坏的设计是完美的平衡,因此,如果建筑方面也是如此。