http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55813



             Bug #: 55813

           Summary: Poorly named/documented option Wctor-dtor-privacy

    Classification: Unclassified

           Product: gcc

           Version: 4.7.2

            Status: UNCONFIRMED

          Severity: normal

          Priority: P3

         Component: c++

        AssignedTo: unassig...@gcc.gnu.org

        ReportedBy: har...@gigawatt.nl





The -Wctor-dtor-privacy option is documented as



`-Wctor-dtor-privacy (C++ only)'

     Warn when a class seems unusable, because all the constructors or

     destructors in a class are private and the class has no friends or

     public static member functions.



However, the option warns for more than just that:



class A { // warning: all member functions in class 'A' are private

    void f();

};



class B { // no warning

    void f() {}

public:

    B() {}

};



The documentation does not explain why a warning for A is issued, nor does it

explain why A is treated differently from B. The option's name suggests that no

warning should be generated for either of them, but I cannot tell what the

actual intended behaviour is, only that gcc has behaved this way since before

3.x.

Reply via email to