c ++ überladene virtuelle Funktionswarnung von clang?

clang gibt eine Warnung aus, wenn der folgende Code kompiliert wird:

struct Base
{
    virtual void * get(char* e);
//    virtual void * get(char* e, int index);
};

struct Derived: public Base {
    virtual void * get(char* e, int index);
};

Die Warnung lautet:

warning: 'Derived::get' hides overloaded virtual function [-Woverloaded-virtual]

(Diese Warnung muss natürlich aktiviert sein).

Ich verstehe nicht warum. Beachten Sie, dass das Deaktivieren derselben Deklaration in Base die Warnung beendet. Ich verstehe, dass es kein Verstecken geben kann, da die beiden get () - Funktionen unterschiedliche Signaturen haben.

Ist clang richtig? Warum?

Beachten Sie, dass dies unter MacOS X geschieht und eine aktuelle Version von Xcode ausführt.

clang --version
Apple LLVM version 5.0 (clang-500.1.74) (based on LLVM 3.3svn)

Update: gleiches Verhalten mit Xcode 4.6.3.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage