verschachtelte Typnames



  • Hallo,

    ich habe folgenden Ausdruck:

    template<class C> void test()
    {
      C::Class::test();
    }
    

    wobei Class eine Subklasse von C ist und Class::test() eine Funktion. Wie kann ich nun diesen Ausdruck valide machen, ohne noch ein zusätzliches Typdef einzuführen?

    Danke



  • Hi,

    ich sehe nicht wo das Problem liegt. Der Code hat keine Fehler. Ich zeig dir mal meinen Beispielcode, den ich zum testen benutzt habe.

    Ich habe die Befuerchtung dass du etwas anderes mit deinem Code im Sinn hattest?!

    struct A {
      struct Class {
        static void test() {}
      };
    };
    
    template<class C> void test()
    {
      C::Class::test();
    }
    
    int main() {
      test<A>();
      return 0;
    }
    


  • Da habe ich wohl einen Denkfehler gemacht. Ist wohl doch alles ok.


Anmelden zum Antworten