1: Remove unnecessary include and namespace use
2: Check name in DECLARE_CLASSNAME()
3: Separate DECLARE_CLASSNAME() from VIRTUAL_COPY_CONSTRUCTOR()
4: Eliminate VIRTUAL_COPY_CONSTRUCTOR()
Just write out the virtual clone() function.
5: Use C++11 "override" keyword throughout the code
The chosen style is to state "virtual" for the base function only, because "override" implies "virtual".
6: Compile with -Werror=suggest-override, when supported
This fails the build if a virtual method is overridden without using the "override" keyword. This complements the standard behavior of failing the build if a virtual method with the "override" keyword does not actually override anything.
Diff:
Passes make, make check and a full make doc.
Patch on countdown for Jan 7th
Patch counted down - please push