Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Stephane Wirtel
Bonjour, Print<char*> ("Implicit") correspond mieux à l'appel que Print<std::string> (std::string("Implicit")) voila pourquoi. Je m'en doutais un petit peu, mais comment faire pour qu'il le prenne comme étant un std::string ?
Bonjour,
Print<char*> ("Implicit") correspond mieux à l'appel que Print<std::string>
(std::string("Implicit"))
voila pourquoi.
Je m'en doutais un petit peu, mais comment faire pour qu'il le prenne comme étant un std::string ?
Bonjour, Print<char*> ("Implicit") correspond mieux à l'appel que Print<std::string> (std::string("Implicit")) voila pourquoi. Je m'en doutais un petit peu, mais comment faire pour qu'il le prenne comme étant un std::string ?
Stephane Wirtel
En fait, j'essaie de créer une fonction générique qui retourne toujours un std::string, afin de le mettre dans une map.
En fait, j'essaie de créer une fonction générique qui retourne toujours un std::string, afin de le mettre dans une map.
Est-ce normal que pour 'Print ("Implicit")' j'ai le résultat 'Print Generic : Implicit' ?
Oui. Le type de "Implicit" n'est pas std::string mais char const[9], donc tu n'appelles pas la version spécialisée pour std::string. Peut-être plus surprenant,
Mais gcc (3.3.4 en tout cas) a un bug et il faut enlever le const au typedef.
A+
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html Site de usenet-fr: http://www.usenet-fr.news.eu.org
Est-ce normal que pour 'Print ("Implicit")' j'ai le
résultat 'Print Generic : Implicit' ?
Oui. Le type de "Implicit" n'est pas std::string mais
char const[9], donc tu n'appelles pas la version spécialisée
pour std::string. Peut-être plus surprenant,
Mais gcc (3.3.4 en tout cas) a un bug et il faut enlever le
const au typedef.
A+
--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org
Est-ce normal que pour 'Print ("Implicit")' j'ai le résultat 'Print Generic : Implicit' ?
Oui. Le type de "Implicit" n'est pas std::string mais char const[9], donc tu n'appelles pas la version spécialisée pour std::string. Peut-être plus surprenant,
Mais gcc (3.3.4 en tout cas) a un bug et il faut enlever le const au typedef.
A+
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html Site de usenet-fr: http://www.usenet-fr.news.eu.org
Christophe de Vienne
Stephane Wirtel wrote:
Bonjour, Print<char*> ("Implicit") correspond mieux à l'appel que Print<std::string> (std::string("Implicit")) voila pourquoi. Je m'en doutais un petit peu, mais comment faire pour qu'il le prenne
comme étant un std::string ?
Surcharger Print<const char *>() ?
A+
Christophe
Stephane Wirtel wrote:
Bonjour,
Print<char*> ("Implicit") correspond mieux à l'appel que
Print<std::string> (std::string("Implicit"))
voila pourquoi.
Je m'en doutais un petit peu, mais comment faire pour qu'il le prenne
Bonjour, Print<char*> ("Implicit") correspond mieux à l'appel que Print<std::string> (std::string("Implicit")) voila pourquoi. Je m'en doutais un petit peu, mais comment faire pour qu'il le prenne
comme étant un std::string ?
Surcharger Print<const char *>() ?
A+
Christophe
Jean-Marc Bourguet
Christophe de Vienne writes:
Stephane Wirtel wrote:
Bonjour, Print<char*> ("Implicit") correspond mieux à l'appel que Print<std::string> (std::string("Implicit")) voila pourquoi. Je m'en doutais un petit peu, mais comment faire pour qu'il le prenne
comme étant un std::string ?
Surcharger Print<const char *>() ?
Ça ne sert à rien dans ce cas. Voir mon message.
A+
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html Site de usenet-fr: http://www.usenet-fr.news.eu.org
Christophe de Vienne <cdevienne@alphacent.com> writes:
Stephane Wirtel wrote:
Bonjour,
Print<char*> ("Implicit") correspond mieux à l'appel que
Print<std::string> (std::string("Implicit"))
voila pourquoi.
Je m'en doutais un petit peu, mais comment faire pour qu'il le prenne
comme étant un std::string ?
Surcharger Print<const char *>() ?
Ça ne sert à rien dans ce cas. Voir mon message.
A+
--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org
Bonjour, Print<char*> ("Implicit") correspond mieux à l'appel que Print<std::string> (std::string("Implicit")) voila pourquoi. Je m'en doutais un petit peu, mais comment faire pour qu'il le prenne
comme étant un std::string ?
Surcharger Print<const char *>() ?
Ça ne sert à rien dans ce cas. Voir mon message.
A+
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html Site de usenet-fr: http://www.usenet-fr.news.eu.org
Alexandre
Print ("Implicit");
"Implicit" n'est pas du type std::string. Donc il te faudra appeler Print(std::string("Implicit")) ou redéfinir ton template pour les char *.
Print ("Implicit");
"Implicit" n'est pas du type std::string. Donc il te faudra appeler
Print(std::string("Implicit"))
ou redéfinir ton template pour les char *.
"Implicit" n'est pas du type std::string. Donc il te faudra appeler Print(std::string("Implicit")) ou redéfinir ton template pour les char *.
Jean-Marc Bourguet
"Alexandre" writes:
Print ("Implicit");
"Implicit" n'est pas du type std::string. Donc il te faudra appeler Print(std::string("Implicit")) ou redéfinir ton template pour les char *.
Non. Voir
A+
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html Site de usenet-fr: http://www.usenet-fr.news.eu.org
"Alexandre" <alex.g@netcourrier.com> writes:
Print ("Implicit");
"Implicit" n'est pas du type std::string. Donc il te faudra appeler
Print(std::string("Implicit"))
ou redéfinir ton template pour les char *.
Non. Voir 877jj0qe0z.fsf@news.bourguet.org
A+
--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org
"Implicit" n'est pas du type std::string. Donc il te faudra appeler Print(std::string("Implicit")) ou redéfinir ton template pour les char *.
Non. Voir
A+
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html Site de usenet-fr: http://www.usenet-fr.news.eu.org
Fabien LE LEZ
On 18 Apr 2005 17:51:24 +0200, Jean-Marc Bourguet :
Est-ce normal que pour 'Print ("Implicit")' j'ai le résultat 'Print Generic : Implicit' ?
Ça ne change rien: la spécialisation sur char const[9] est toujours meilleure est donc sera générée si elle n'est pas explicite. Pour que la conversion implicite tableau->pointeur intervienne, il faut qu'il n'y ait pas de template en vue.
A+
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html Site de usenet-fr: http://www.usenet-fr.news.eu.org
Fabien LE LEZ <gramster@gramster.com> writes:
On 18 Apr 2005 17:51:24 +0200, Jean-Marc Bourguet <jm@bourguet.org>:
Est-ce normal que pour 'Print ("Implicit")' j'ai le
résultat 'Print Generic : Implicit' ?
Ça ne change rien: la spécialisation sur char const[9] est
toujours meilleure est donc sera générée si elle n'est pas
explicite. Pour que la conversion implicite
tableau->pointeur intervienne, il faut qu'il n'y ait pas de
template en vue.
A+
--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite
en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org
Ça ne change rien: la spécialisation sur char const[9] est toujours meilleure est donc sera générée si elle n'est pas explicite. Pour que la conversion implicite tableau->pointeur intervienne, il faut qu'il n'y ait pas de template en vue.
A+
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html Site de usenet-fr: http://www.usenet-fr.news.eu.org