hide the C++11 final keyword behind a macro for portability across compilers
compatibility macros for Clang
declare some classes final
some more final