Je crois comprendre qu'une déclaration ou une typedef d'une spécialisation devrait provoquer l'instanciation d'une classe template, mais cela ne semble pas se produire avec gcc. Par exemple. J'ai une classe de modèle, classe de modèle Foo {};Problème gcc avec instanciation de modèle explicite?
J'écris
class Foo<double>;
ou
typedef Foo<double> DoubleFoo;
mais après la compilation de la table des symboles du fichier objet résultant ne contient pas les membres de Foo.
Si je crée un exemple:
Foo<double> aFoo;
alors des symboles sont bien sûr tous générés.
Est-ce que quelqu'un d'autre a vécu cela et/ou a-t-il une explication?
Je pense que Potatoswatter est sur quelque chose ici. Je n'ai jamais entendu parler d'une telle utilisation pour typedef. C'est seulement pour les types shorthanding, et n'instancie jamais rien. – daramarak
Oui, vous avez raison, je ne suis pas sûr d'où j'ai ramassé cette désinformation à propos de typedefs. J'étais sur la bonne voie avec la déclaration, mais j'ai laissé de côté le mot clé «template». Merci –