fork(1) download
  1. #include <iostream>
  2. #include <string>
  3.  
  4. using std::cout;
  5. using std::endl;
  6.  
  7. #define PFN(x) cout << x << __PRETTY_FUNCTION__ << endl
  8. #define PF PFN("")
  9. #define NL cout << endl
  10.  
  11. struct A {
  12. constexpr A() { PF; }
  13. virtual ~A() { PF; NL; }
  14. };
  15.  
  16. struct B : A {
  17. constexpr B() { PFN(" "); }
  18. virtual ~B() { PFN(" "); }
  19. };
  20.  
  21. int main(int argc, char** argv) {
  22. { A a; }
  23. { B b; }
  24. A* a = new B;
  25. delete a;
  26. return 0;
  27. }
Success #stdin #stdout 0s 4304KB
stdin
Standard input is empty
stdout
constexpr A::A()
virtual A::~A()

constexpr A::A()
 constexpr B::B()
 virtual B::~B()
virtual A::~A()

constexpr A::A()
 constexpr B::B()
 virtual B::~B()
virtual A::~A()