Werner LEMBERG <w...@gnu.org> writes:

>> And answers are trickling in; see thread starting with
>> 
>>   http://lists.llvm.org/pipermail/cfe-users/2018-November/001417.html
>
> And here's the definite answer from a clang developer:
>
>   The rule for determining when a base class function declaration
>   introduced by a using-declaration is hidden by a derived class
>   function declaration does not take the template parameter list into
>   account: http://eel.is/c++draft/namespace.udecl#15.sentence-1

Huh?  This link states:

    When a using-declarator brings declarations from a base class into a
    derived class, member functions and member function templates in the
    derived class override and/or hide member functions and member
    function templates with the same name, parameter-type-list,
    cv-qualification, and ref-qualifier (if any) in a base class (rather
    than conflicting).

The parameter-type-list is a different one in this example since they
contain a different member function pointer type.  Which is the reason
we need the whole hooplahoop in the first place.

>   So clang's behaviour is conforming and gcc's behaviour is not. At
>   the very least, though, we should issue a warning for the using
>   declaration, because this is a surprising rule.

I disagree.

-- 
David Kastrup

_______________________________________________
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel

Reply via email to