• Mot clé type name

    12.6. Mot-clé typename

    Nous avons déjà vu que le mot clé typename pouvait être utilisé pour introduire les types génériques dans les déclarations template. Cependant, il peut être utilisé dans un autre contexte pour introduire les identificateurs de types inconnus dans les template. En effet, un type générique peut très bien être une classe définie par l'utilisateur, à l'intérieur de laquelle des types sont définis. Afin de pouvoir utiliser ces types dans les définitions des template, il est nécessaire d'utiliser le mot clé typename pour les introduire, car a priori le compilateur ne sait pas que le type générique contient la définition d'un autre type. Ce mot clé doit être placé avant le nom complet du type :

    typename identificateur

    Le mot clé typename est donc utilisé pour signaler au compilateur que l'identificateur identificateur est un type.

    Exemple 12-15. Mot-clé typename

    class A
    {
    public:
    typedef int Y; // Y est un type défini dans la classe A.
    };

    template <class T>
    class X
    {
    typename T::Y i; // La classe template X suppose que le
    // type générique T définisse un type Y.
    };

    X<A> x; // A peut servir à instancier une classe
    // à partir de la classe template X.

  • Commentaires

    Aucun commentaire pour le moment

    Suivre le flux RSS des commentaires


    Ajouter un commentaire

    Nom / Pseudo :

    E-mail (facultatif) :

    Site Web (facultatif) :

    Commentaire :