c ++ przeciążone ostrzeżenie funkcji wirtualnej przez clang?

clang emituje ostrzeżenie podczas kompilowania następującego kodu:

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);
};

Ostrzeżenie to:

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

(wspomniane ostrzeżenie musi być oczywiście włączone).

Nie rozumiem dlaczego. Zauważ, że odkomentowanie tej samej deklaracji w Base powoduje zamknięcie ostrzeżenia. Rozumiem, że skoro dwie funkcje get () mają różne sygnatury, nie można ukryć.

Czy clang jest w porządku? Czemu?

Zauważ, że jest to na MacOS X, z najnowszą wersją Xcode.

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

Aktualizacja: to samo zachowanie z Xcode 4.6.3.

questionAnswers(4)

yourAnswerToTheQuestion