// { dg-do assemble } // { dg-options "-Wctor-dtor-privacy" } class A { }; class B { // { dg-warning "" } only private constructors public: void f(); private: B (); B (const B&); }; class C { // { dg-warning "" } only private destructors public: void f(); private: ~C (); }; class D { // { dg-warning "" } all member functions are private private: void f(); }; template class X { // { dg-warning "" } only private destructors private: ~X (); }; template class X; template class X; template class Y { // { dg-warning "" } only private constructors private: Y (); Y (const Y&); }; template class Z { // { dg-warning "" } all member functions are private private: void f(); };