I don't really understand this option. I enabled it but it warns for essentially all of my classes which have any virtual methods. For
example if I have Foo.h:
class Foo {
virtual bool bar();
...
};
then Foo.cpp which implements Foo. And then in another header somewhere else I inherit from Foo and implement bar() differently (as a virtual function). However when GCC compiles Foo.cpp it can't see the other header, so I guess it assumes no one inherits from Foo and suggests it should be marked final:
Declaring type 'class Foo' final would enable devirtualization of N calls
I mean sure, it would, but that would defeat the entire point (as I understand it).
I don't really understand how/where this option is meant to be used.
Ditto for -Wsuggest-final-methods.