C++11 has the new override qualifier which can be applied to member functions to assert that they override a virtual function in the base class. C++11 also allo
According to the standard, 8.4.1, a declarator for a function includes the trailing-return-type, and a class function definition contains "declarator virt-specifier-seqopt". The second one, virt-specifier-seq, is one of final or override, so those come after the trailing return type. (I.e. Clang gets it right.)