The following -W… options is not affected by -Wall.

  • -Weffc++ (C++ and Objective-C++ only) Warn about violations of the following style guidelines from Scott Meyers’ Effective C++ book:

  • Item 11: Define a copy constructor and an assignment operator for classes with dynamically allocated memory.
  • Item 12: Prefer initialization to assignment in constructors.
  • Item 14: Make destructors virtual in base classes.
  • Item 15: Have operator= return a reference to *this.
  • Item 23: Don’t try to return a reference when you must return an object.

    Also warn about violations of the following style guidelines from Scott Meyers’ More Effective C++ book:

  • Item 6: Distinguish between prefix and postfix forms of increment and decrement operators.
  • Item 7: Never overload &&, ||, or ,.

    When selecting this option, be aware that the standard library headers do not obey all of these guidelines; use `grep -v’ to filter out those warnings.