38    stream << 
"Is A a base of B ? " 
   39        << std::is_base_of_v<A, B> << 
endl;
 
   41    stream << 
"Is BaseWithVD a base of A ? " 
   42        << std::is_base_of_v<BaseWithVD, A> << 
endl;
 
   44    stream << 
"Is A a base of BaseWithVD ? " 
   45        << std::is_base_of_v<A, BaseWithVD> << 
endl;
 
   47    stream << 
"Is BaseWithoutVD a base of B ?" 
   48        << std::is_base_of_v<BaseWithoutVD, B> << 
endl;
 
   50    stream << 
"Is B a base of BaseWithoutVD ?" 
   51        << std::is_base_of_v<B, BaseWithoutVD> << 
endl;
 
   53    stream << 
"Has A a virtual destructor ? " 
   54        << std::has_virtual_destructor_v<A> << 
endl;
 
   56    stream << 
"Has B a virtual destructor ? " 
   57        << std::has_virtual_destructor_v<B> << 
endl;
 
void test_virtual_destructor()
virtual ~BaseWithVD()=default
Stream output operators << are implemented.