Les templates ont besoin d'être initialisés avec des types définis à un moment ou un autre, et à ce moment on se retrouve dans le cas d'héritage simple avec des types définis, et aucun problème (sauf peut-être un message d'erreur un peu dur à comprendre).
Je ne comprend pas pourquoi gcc s'embête à s'occuper du cas générique, je ne vois pas ce que ça lui apporte!
Je trouve ça vraiment plus simple de ni avoir à utiliser this->, ni using, ni BaseClass<T>::. Pourquoi faire compliqué quand on peut faire simple? Tous les arguments que j'ai vu pour la programmation par contrat me laissent perplexe, j'aimerais vraiment avoir un exemple qui me prouve que c'est mieux d'utiliser this-> que de ne rien mettre (en sous-entendant bien sûr l'appartenance de la variable à la classe).
Partager