Dans la configuration suivante, comment puis-je faire en sorte que je puisse me référer au nom Bar
à l'intérieur de la classe dérivée Derived<T>
? J'ai essayé using Foo<T>::Bar;
J'ai essayé using Foo<T>::Bar;
, mais cela n'aide pas. Y at-il une sorte de déclaration using
qui peut rendre le nom d'un modèle de base imbriqué connu de la classe dérivée, de sorte que je peux garder le cla ration Bar<int> x
?Comment nommer un modèle imbriqué dans une classe de base modèle?
Je sais que je peux dire typename Foo<T>::template Bar<int> x;
, mais j'ai beaucoup de ces cas et je ne veux pas alourdir inutilement le code avec tant de verbosité. J'ai aussi beaucoup de "int
s" distincts, donc un typedef
pour chaque instance de modèle imbriqué n'est pas réalisable non plus.
Aussi, je ne peux pas utiliser GCC 4.7 à ce stade ni C++ 11, et aimerais donc une solution "traditionnelle" sans alias de template.
Oui, c'est vrai. Malheureusement, je n'ai pas d'accès pratique à un tel compilateur, donc je voudrais une solution "traditionnelle" si possible: -S –
@KerrekSB: Qu'est-ce qui est "non traditionnel" à ce sujet? – Nawaz
@Nawaz: Je ne peux pas l'utiliser dans le projet où j'en ai besoin :-) –