Supposons que je code comme ceci:Comment surmonter la restriction GCC "Impossible de convertir l'argument du modèle '0' en 'Foo *'"?
template<class T, T initial_t> class Bar {
// something
}
et essayez de l'utiliser comme ceci:
Bar<Foo*, NULL> foo_and_bar_whatever_it_means_;
GCC renfloue avec l'erreur (sur la ligne ci-dessus):
impossible de convertir l'argument du modèle '0' à 'Foo *'
J'ai trouvé ce fil: http://gcc.gnu.org/ml/gcc-help/2007-11/msg00066.html, mais je dois utiliser NULL dans ce cas (ok, je pourrais probablement refactor - mais ce ne serait pas trivial; Aucune suggestion?). J'ai essayé de surmonter le problème en créant une variable avec la valeur de NULL, mais GCC se plaint toujours que je passe la variable et pas l'adresse de la variable en tant qu'argument de modèle. Et la référence à une variable initialisée avec ctor par défaut ne serait pas la même que NULL.
les deux ne fonctionnent pas ... –