Version courte : Est-il sûr de conserver un pointeur sur un type_info ?
Version un chouilla plus longue :
Je souhaite faire une map dont la clé est un type.
J'ai le choix entre :
std::map< type_info const *, mon_type_foncteur > m_table;
et
std::map< std::string, mon_type_foncteur > m_table;
Dans le second cas, j'indexerais type_info.name.
Je préfère la première alternative, mais est-elle valable ?
Il y a eu une proposition pour normaliser le contenu de name(). Il n'a pas passé, pour de diverses raisons, mais si j'étais un implémenteur, c'est certainement sur cette proposition que je me baserais. Seulement, l'opposition à la proposition venait en fait des implémenteurs.
Quelles étaient leurs raisons ?
--drkm, en recherche d'un stage : http://www.fgeorges.org/ipl/stage.html
kanze@gabi-soft.fr writes:
Il y a eu une proposition pour normaliser le contenu de name(). Il n'a
pas passé, pour de diverses raisons, mais si j'étais un implémenteur,
c'est certainement sur cette proposition que je me baserais. Seulement,
l'opposition à la proposition venait en fait des implémenteurs.
Quelles étaient leurs raisons ?
--drkm, en recherche d'un stage : http://www.fgeorges.org/ipl/stage.html
Il y a eu une proposition pour normaliser le contenu de name(). Il n'a pas passé, pour de diverses raisons, mais si j'étais un implémenteur, c'est certainement sur cette proposition que je me baserais. Seulement, l'opposition à la proposition venait en fait des implémenteurs.
Quelles étaient leurs raisons ?
--drkm, en recherche d'un stage : http://www.fgeorges.org/ipl/stage.html
Gabriel Dos Reis
writes:
[...]
| Il y a eu une proposition pour normaliser le contenu de name(). Il n'a | pas passé, pour de diverses raisons, mais si j'étais un implémenteur, | c'est certainement sur cette proposition que je me baserais. Seulement,
C'est probablement ça la différence : tu n'es pas implémenteur ;-p
| l'opposition à la proposition venait en fait des implémenteurs.
-- Gaby
kanze@gabi-soft.fr writes:
[...]
| Il y a eu une proposition pour normaliser le contenu de name(). Il n'a
| pas passé, pour de diverses raisons, mais si j'étais un implémenteur,
| c'est certainement sur cette proposition que je me baserais. Seulement,
C'est probablement ça la différence : tu n'es pas implémenteur ;-p
| l'opposition à la proposition venait en fait des implémenteurs.
| Il y a eu une proposition pour normaliser le contenu de name(). Il n'a | pas passé, pour de diverses raisons, mais si j'étais un implémenteur, | c'est certainement sur cette proposition que je me baserais. Seulement,
C'est probablement ça la différence : tu n'es pas implémenteur ;-p
| l'opposition à la proposition venait en fait des implémenteurs.
-- Gaby
kanze
drkm wrote in message news:...
writes:
Il y a eu une proposition pour normaliser le contenu de name(). Il n'a pas passé, pour de diverses raisons, mais si j'étais un implémenteur, c'est certainement sur cette proposition que je me baserais. Seulement, l'opposition à la proposition venait en fait des implémenteurs.
Quelles étaient leurs raisons ?
Je ne me rappelle plus ; je n'ai pas suivi la discussion de près.
Si je me rappelle bien (mais ça fait un moment - ce n'est pas sûr), je crois que c'était Bill Gibson (alors chez Taligent) qui était l'auteur de la proposition. Et j'ai un très, très vague souvenir que l'oposition venait de Borland, parmi d'autres. Si Gabi a accès à l'historique, et qu'il a le temps d'y chercher, peut-être il pourrait nous le dire.
La seule idée qui me vient à l'esprit, c'est qu'on n'avait pas encore assez d'expérience pour être sûr ce qu'il fallait. Il me semble qu'à l'époque, par exemple, il y a eu de discussion s'il ne fallait peut-être pas que le résultat soit quelque chose de compilable. Mais je ne suis pas sûr du tout.
Dans le cas de Borland, je crois aussi qu'une partie de l'oposition venait du fait qu'ils l'avaient déjà implémenté, et qu'il ne voulait pas changer leur implémentation.
Mais il faudrait vraiment chercher dans les archives pour être sûr.
-- James Kanze GABI Software http://www.gabi-soft.fr Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
drkm <usenet.fclcxx@fgeorges.org> wrote in message
news:<wky8kbwck0.fsf@fgeorges.org>...
kanze@gabi-soft.fr writes:
Il y a eu une proposition pour normaliser le contenu de name(). Il
n'a pas passé, pour de diverses raisons, mais si j'étais un
implémenteur, c'est certainement sur cette proposition que je me
baserais. Seulement, l'opposition à la proposition venait en fait
des implémenteurs.
Quelles étaient leurs raisons ?
Je ne me rappelle plus ; je n'ai pas suivi la discussion de près.
Si je me rappelle bien (mais ça fait un moment - ce n'est pas sûr), je
crois que c'était Bill Gibson (alors chez Taligent) qui était l'auteur
de la proposition. Et j'ai un très, très vague souvenir que l'oposition
venait de Borland, parmi d'autres. Si Gabi a accès à l'historique, et
qu'il a le temps d'y chercher, peut-être il pourrait nous le dire.
La seule idée qui me vient à l'esprit, c'est qu'on n'avait pas encore
assez d'expérience pour être sûr ce qu'il fallait. Il me semble qu'à
l'époque, par exemple, il y a eu de discussion s'il ne fallait peut-être
pas que le résultat soit quelque chose de compilable. Mais je ne suis
pas sûr du tout.
Dans le cas de Borland, je crois aussi qu'une partie de l'oposition
venait du fait qu'ils l'avaient déjà implémenté, et qu'il ne voulait pas
changer leur implémentation.
Mais il faudrait vraiment chercher dans les archives pour être sûr.
--
James Kanze GABI Software http://www.gabi-soft.fr
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Il y a eu une proposition pour normaliser le contenu de name(). Il n'a pas passé, pour de diverses raisons, mais si j'étais un implémenteur, c'est certainement sur cette proposition que je me baserais. Seulement, l'opposition à la proposition venait en fait des implémenteurs.
Quelles étaient leurs raisons ?
Je ne me rappelle plus ; je n'ai pas suivi la discussion de près.
Si je me rappelle bien (mais ça fait un moment - ce n'est pas sûr), je crois que c'était Bill Gibson (alors chez Taligent) qui était l'auteur de la proposition. Et j'ai un très, très vague souvenir que l'oposition venait de Borland, parmi d'autres. Si Gabi a accès à l'historique, et qu'il a le temps d'y chercher, peut-être il pourrait nous le dire.
La seule idée qui me vient à l'esprit, c'est qu'on n'avait pas encore assez d'expérience pour être sûr ce qu'il fallait. Il me semble qu'à l'époque, par exemple, il y a eu de discussion s'il ne fallait peut-être pas que le résultat soit quelque chose de compilable. Mais je ne suis pas sûr du tout.
Dans le cas de Borland, je crois aussi qu'une partie de l'oposition venait du fait qu'ils l'avaient déjà implémenté, et qu'il ne voulait pas changer leur implémentation.
Mais il faudrait vraiment chercher dans les archives pour être sûr.
-- James Kanze GABI Software http://www.gabi-soft.fr Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Falk Tannhäuser
wrote:
drkm wrote in message
writes:
Il y a eu une proposition pour normaliser le contenu de name(). Il n'a pas passé, pour de diverses raisons, mais si j'étais un implémenteur, c'est certainement sur cette proposition que je me baserais. Seulement, l'opposition à la proposition venait en fait des implémenteurs.
Quelles étaient leurs raisons ?
[snip]
La seule idée qui me vient à l'esprit, c'est qu'on n'avait pas encore assez d'expérience pour être sûr ce qu'il fallait. Il me semble qu'à l'époque, par exemple, il y a eu de discussion s'il ne fallait peut-être pas que le résultat soit quelque chose de compilable. Mais je ne suis pas sûr du tout.
Il n'y avait pas une proposition d'avoir deux fonctions membres au lieu de 'name()' dans 'std::type_info' - une qui peut renvoyer un nom abrégé / manglé puis une qui renvoie un nom lisible ?
Ceci dit, même si on avait une chaîne de caractères unique par type, l'utilisation de 'before()' pour comparer les clefs dans une 'std::map' me semble préférable à la comparaison des noms, pour des raisons de performance.
Falk
kanze@gabi-soft.fr wrote:
drkm <usenet.fclcxx@fgeorges.org> wrote in message
kanze@gabi-soft.fr writes:
Il y a eu une proposition pour normaliser le contenu de name(). Il
n'a pas passé, pour de diverses raisons, mais si j'étais un
implémenteur, c'est certainement sur cette proposition que je me
baserais. Seulement, l'opposition à la proposition venait en fait
des implémenteurs.
Quelles étaient leurs raisons ?
[snip]
La seule idée qui me vient à l'esprit, c'est qu'on n'avait pas encore
assez d'expérience pour être sûr ce qu'il fallait. Il me semble qu'à
l'époque, par exemple, il y a eu de discussion s'il ne fallait peut-être
pas que le résultat soit quelque chose de compilable. Mais je ne suis
pas sûr du tout.
Il n'y avait pas une proposition d'avoir deux fonctions membres
au lieu de 'name()' dans 'std::type_info' - une qui peut renvoyer
un nom abrégé / manglé puis une qui renvoie un nom lisible ?
Ceci dit, même si on avait une chaîne de caractères unique par
type, l'utilisation de 'before()' pour comparer les clefs dans
une 'std::map' me semble préférable à la comparaison des noms,
pour des raisons de performance.
Il y a eu une proposition pour normaliser le contenu de name(). Il n'a pas passé, pour de diverses raisons, mais si j'étais un implémenteur, c'est certainement sur cette proposition que je me baserais. Seulement, l'opposition à la proposition venait en fait des implémenteurs.
Quelles étaient leurs raisons ?
[snip]
La seule idée qui me vient à l'esprit, c'est qu'on n'avait pas encore assez d'expérience pour être sûr ce qu'il fallait. Il me semble qu'à l'époque, par exemple, il y a eu de discussion s'il ne fallait peut-être pas que le résultat soit quelque chose de compilable. Mais je ne suis pas sûr du tout.
Il n'y avait pas une proposition d'avoir deux fonctions membres au lieu de 'name()' dans 'std::type_info' - une qui peut renvoyer un nom abrégé / manglé puis une qui renvoie un nom lisible ?
Ceci dit, même si on avait une chaîne de caractères unique par type, l'utilisation de 'before()' pour comparer les clefs dans une 'std::map' me semble préférable à la comparaison des noms, pour des raisons de performance.
Falk
kanze
Falk Tannhäuser wrote in message news:<cg4eoo$44g$...
[...]
Il n'y avait pas une proposition d'avoir deux fonctions membres au lieu de 'name()' dans 'std::type_info' - une qui peut renvoyer un nom abrégé / manglé puis une qui renvoie un nom lisible ?
Je n'en ai pas entendu parler, mais il y a beaucoup qui se passe dont je n'entends pas parler.
Ceci dit, même si on avait une chaîne de caractères unique par type, l'utilisation de 'before()' pour comparer les clefs dans une 'std::map' me semble préférable à la comparaison des noms, pour des raisons de performance.
Certainement. L'intérêt d'un name() standardisé, c'est de pouvoir l'utiliser comme identifiant dans des fichiers ou dans les flux.
-- James Kanze GABI Software http://www.gabi-soft.fr Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Falk Tannhäuser <falk.tannhauser@crf.canon.fr> wrote in message
news:<cg4eoo$44g$1@s5.feed.news.oleane.net>...
[...]
Il n'y avait pas une proposition d'avoir deux fonctions membres au
lieu de 'name()' dans 'std::type_info' - une qui peut renvoyer un nom
abrégé / manglé puis une qui renvoie un nom lisible ?
Je n'en ai pas entendu parler, mais il y a beaucoup qui se passe dont je
n'entends pas parler.
Ceci dit, même si on avait une chaîne de caractères unique par type,
l'utilisation de 'before()' pour comparer les clefs dans une
'std::map' me semble préférable à la comparaison des noms, pour des
raisons de performance.
Certainement. L'intérêt d'un name() standardisé, c'est de pouvoir
l'utiliser comme identifiant dans des fichiers ou dans les flux.
--
James Kanze GABI Software http://www.gabi-soft.fr
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Falk Tannhäuser wrote in message news:<cg4eoo$44g$...
[...]
Il n'y avait pas une proposition d'avoir deux fonctions membres au lieu de 'name()' dans 'std::type_info' - une qui peut renvoyer un nom abrégé / manglé puis une qui renvoie un nom lisible ?
Je n'en ai pas entendu parler, mais il y a beaucoup qui se passe dont je n'entends pas parler.
Ceci dit, même si on avait une chaîne de caractères unique par type, l'utilisation de 'before()' pour comparer les clefs dans une 'std::map' me semble préférable à la comparaison des noms, pour des raisons de performance.
Certainement. L'intérêt d'un name() standardisé, c'est de pouvoir l'utiliser comme identifiant dans des fichiers ou dans les flux.
-- James Kanze GABI Software http://www.gabi-soft.fr Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34