Works for me. For the function override in the first place though, the names of the parameters are ignored, right? -- - Milan
On Jun 18, 2014, at 13:01 , Botond Ballo <bba...@mozilla.com> wrote: >> One quick question - is this covered in the proposal? >> >> class Base { >> virtual int f( int ba, char bb ); >> }; >> >> class Derived { >> virtual int f( int da, char db ); // is this allowed and does it count >> like a base class function override? >> }; >> >> Derived d; >> Base* b = &d; >> >> // What is the validity of the four cases below? > > The proposal does not address this explicitly. I think the following > behaviour falls out naturally: > >> b->f( ba=0, bb=‘c’ ); // valid >> b->f( da=0, db=‘c’ ); // invalid (1) >> d.f( ba=0, bb=‘c’ ); // invalid (2) >> d.f( da=0, db=‘c’ ); // valid > > since (1) name lookup and overload resolution is based on the static > type (since they happen at compile time), and (2) when the static type > is the derived type, the derived name hides the base name. > > I think this behaviour is reasonable. I'm open to being convinced > otherwise. > > Cheers, > Botond _______________________________________________ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform