1 // { dg-do assemble } 2 // { dg-options "-Wctor-dtor-privacy" } 3 4 class A { 5 }; 6 7 8 class B { // { dg-warning "" } only private constructors 9 public: 10 void f(); 11 12 private: 13 B (); 14 B (const B&); 15 }; 16 17 18 class C { // { dg-warning "" } only private destructors 19 public: 20 void f(); 21 22 private: 23 ~C (); 24 }; 25 26 27 class D { // { dg-warning "" } all member functions are private 28 private: 29 void f(); 30 }; 31 32 33 template <class T> 34 class X { // { dg-warning "" } only private destructors 35 private: 36 ~X (); 37 }; 38 39 template class X<int>; 40 template class X<double>; 41 42 43 template <class T> 44 class Y { // { dg-warning "" } only private constructors 45 private: 46 Y (); 47 Y (const Y&); 48 }; 49 50 51 template <class T> 52 class Z { // { dg-warning "" } all member functions are private 53 private: 54 void f(); 55 }; 56