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

Anders Carlsson andersca at me.com
Mon Jan 24 10:00:20 PST 2011


Hi Jean-Daniel,

the keywords currently don't work in on inline member functions.

While this is correct according to the C++0x spec, please file a bug so we can support it anyway. Maybe we could get the spec fixed as well.

- Anders

On Jan 24, 2011, at 9:51 AM, Jean-Daniel Dupas wrote:

> Hello,
> 
> 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 ? 
> 
> Thanks
> 
> -- Jean-Daniel
> 
> 
> 
> 
> 
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20110124/79387e6a/attachment.html>


More information about the cfe-dev mailing list