Wie rufe ich eine statische Methode aus einer privaten Basisklasse auf?

Aufgrund des Layouts einer Drittanbieter-Bibliothek habe ich etwa den folgenden Code:

struct Base
{
    static void SomeStaticMethod(){}
};

struct Derived1: private Base {};

struct Derived2: public Derived1 {
    void SomeInstanceMethod(){
        Base::SomeStaticMethod();
    }
};

int main() {
    Derived2 d2;
    d2.SomeInstanceMethod();

    return 0;
}

Ich erhalte den Compiler-Fehler C2247 mit MSVC:

uf @Base :: SomeStaticMethod kann nicht zugegriffen werden, da Derived1 private zum Erben von Base verwendet.

Ich weiß, ich kann nicht zugreifenBase Mitglieder vonDerived2 über Vererbung wegen des privaten Bezeichners, aber ich sollte immer noch in der Lage sein, eine statische Methode von @ aufzurufBase - unabhängig von einer Vererbungsbeziehung zwischenBase undDerived2.
Wie löse ich die Mehrdeutigkeit auf und sage dem Compiler, dass ich nur eine statische Methode aufrufe?

Antworten auf die Frage(10)

Ihre Antwort auf die Frage