I tried "Refactor > Move Definition Outside Class" menu for Derived::func() and here's the result:
You can see two problems here:
- override keyword should not appear in function definition outside class. This is syntax error. Same problem occurs with final keyword.
- trailing return type function declaration is converted to pre-C++11 style. This is espacially annoying because I have to rewrite every defintion one by one.
One more thing, you may noticed that the space after reference specifier && is removed in function definition outside class. Eventhough this is a formatting issue and can be fixed by re-formatting, it would be nice to keep original format.