I found it quite interesting to know that g++ compiler actually provides an option (-Weffc++) which enables warnings for constructs that violate guidelines in Effective C++!!
From g++ manual (man g++)
== Begin ==
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.
== End ==
Indeed, Effective C++ is a very nice work by Scott Meyer. He has compiled two lists of top C++ publications: top 5 books and top 5 articles. His list captures right set of very well written, excellent publications in C++ as I have read most of the literature in those lists. I would also like to add More C++ Gems to that list.
From g++ manual (man g++)
== Begin ==
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.
== End ==
Indeed, Effective C++ is a very nice work by Scott Meyer. He has compiled two lists of top C++ publications: top 5 books and top 5 articles. His list captures right set of very well written, excellent publications in C++ as I have read most of the literature in those lists. I would also like to add More C++ Gems to that list.
Comments
it should have a switch to disable warnings for objects (or at least for the STL classes like strings).
Hope it is readable english. =)
gclub