typedef typename?



  • Hallo

    Ich habe in einer Datei der STD das gefunden:

    typedef typename _Alloc::reference _Reft;
    

    Und gleich darunter hat es wieder ein normales typedef .
    Also, was für einen Unterschied macht es?

    MfG, EOutOfResources...



  • Der Scope Operator macht einfach nur das Symbol mit dem Namen "reference" aus _Alloc verfügbar. Das kann jetzt eine Variable sein, eine Methode oder auch ein Typ. Wenn es ein Typ ist, musst du das dem Compiler mittels "typedef typename" mitteilen.



  • typedef typename hat nicht etwa eine Sonderbedeutung, sondern ist nur die Kombination von typedef und typename . Letzteres brauchst du bei von Template-Parametern abhängigen Membertypen. Wir hatten das in letzter Zeit einige Male im Forum, da findest du genauere Erklärungen.


Log in to reply