[cfe-dev] Question about c++x0 explicit virtual functions

Jean-Daniel Dupas devlists at shadowlab.org
Mon Jan 24 09:51:43 PST 2011


I'm trying to use the new explicit/override/new/final keywords, but I have trouble with some constructs.
As I don't managed to find the part of the specification that describe theses new keywords, I hope someone here can help me.

If I declare the classes A and B as follow, everything is fine. clang compiles and properly checks that foo() is declared in the super class (A).
class A { virtual void foo(); };
class B : public A { virtual void foo() override; };

Now, if I want to define B::foo() in my class definition like this:

class B : public A { virtual void foo() override {} };

clang refuses to compile by telling me it expects a semi at end of declaration list (and point to the space just behind override).

Is there something I miss in these new keyword usages, or is it a clang error, or is this construct prohibited by the C++ current standard ? 


-- Jean-Daniel

More information about the cfe-dev mailing list