Bonjour à tous,
Voila j'aimerais savoir comment ils comptent implémenter (si
ils l'implémententun jour :) )
export parce que si je ne me trompe le code du template pourra être
à ce moment compilé(un fichier obj ou dans une lib,...) et ne sera
plus mis dans les header comme on peut le faire maintenant ...
Bonjour à tous,
Voila j'aimerais savoir comment ils comptent implémenter (si
ils l'implémententun jour :) )
export parce que si je ne me trompe le code du template pourra être
à ce moment compilé(un fichier obj ou dans une lib,...) et ne sera
plus mis dans les header comme on peut le faire maintenant ...
Bonjour à tous,
Voila j'aimerais savoir comment ils comptent implémenter (si
ils l'implémententun jour :) )
export parce que si je ne me trompe le code du template pourra être
à ce moment compilé(un fichier obj ou dans une lib,...) et ne sera
plus mis dans les header comme on peut le faire maintenant ...
Tux writes:Bonjour à tous,
Voila j'aimerais savoir comment ils comptent implémenter (si
ils l'implémententun jour :) )
Pour info, ca fait plus d'un an qu'un compilateur implementant export
est disponible (et pour pas tres cher, 50$).export parce que si je ne me trompe le code du template pourra être
à ce moment compilé(un fichier obj ou dans une lib,...) et ne sera
plus mis dans les header comme on peut le faire maintenant ...
Fait une recherche sur export dans ce groupe. Il me semble avoir
explique comment export fonctionnait dans l'implementation de
Comeau/EDG.
A+
Merci pour les réponces (même si mes questions étaient un peu stupides:) )
Tux <fa311356@skynet.be> writes:
Bonjour à tous,
Voila j'aimerais savoir comment ils comptent implémenter (si
ils l'implémententun jour :) )
Pour info, ca fait plus d'un an qu'un compilateur implementant export
est disponible (et pour pas tres cher, 50$).
export parce que si je ne me trompe le code du template pourra être
à ce moment compilé(un fichier obj ou dans une lib,...) et ne sera
plus mis dans les header comme on peut le faire maintenant ...
Fait une recherche sur export dans ce groupe. Il me semble avoir
explique comment export fonctionnait dans l'implementation de
Comeau/EDG.
A+
Merci pour les réponces (même si mes questions étaient un peu stupides:) )
Tux writes:Bonjour à tous,
Voila j'aimerais savoir comment ils comptent implémenter (si
ils l'implémententun jour :) )
Pour info, ca fait plus d'un an qu'un compilateur implementant export
est disponible (et pour pas tres cher, 50$).export parce que si je ne me trompe le code du template pourra être
à ce moment compilé(un fichier obj ou dans une lib,...) et ne sera
plus mis dans les header comme on peut le faire maintenant ...
Fait une recherche sur export dans ce groupe. Il me semble avoir
explique comment export fonctionnait dans l'implementation de
Comeau/EDG.
A+
Merci pour les réponces (même si mes questions étaient un peu stupides:) )
Merci pour les réponces (même si mes questions étaient un peu
stupides:) ) J'ai regardé un peu à travers le web et les newsgroup.
Et bien j'ai toujours l'impression d'être dans le flou à propos
d'export ... Qu'est-ce que la norme impose ?
1) A-t-on une technique permettant d'optimiser le linkage ?
2) Est-ce que la "classe template" est compilée une fois et le code
choisirait "dynamiquement" le code adapté, je m'exprime mal, mais je
voudrais dire que si j'ai T = int et
T a, b;
a + b
ou bien
T = UneClasseQuiSurchargelOpe+;
a + b;
Il choisirait dynamiquement le cas adapté
Techniquement si on veut pouvoir charger dynamiquement des libraires
il faudrait cela...
J'espère ne pas trop vous ennuyer merci bcp
Merci pour les réponces (même si mes questions étaient un peu
stupides:) ) J'ai regardé un peu à travers le web et les newsgroup.
Et bien j'ai toujours l'impression d'être dans le flou à propos
d'export ... Qu'est-ce que la norme impose ?
1) A-t-on une technique permettant d'optimiser le linkage ?
2) Est-ce que la "classe template" est compilée une fois et le code
choisirait "dynamiquement" le code adapté, je m'exprime mal, mais je
voudrais dire que si j'ai T = int et
T a, b;
a + b
ou bien
T = UneClasseQuiSurchargelOpe+;
a + b;
Il choisirait dynamiquement le cas adapté
Techniquement si on veut pouvoir charger dynamiquement des libraires
il faudrait cela...
J'espère ne pas trop vous ennuyer merci bcp
Merci pour les réponces (même si mes questions étaient un peu
stupides:) ) J'ai regardé un peu à travers le web et les newsgroup.
Et bien j'ai toujours l'impression d'être dans le flou à propos
d'export ... Qu'est-ce que la norme impose ?
1) A-t-on une technique permettant d'optimiser le linkage ?
2) Est-ce que la "classe template" est compilée une fois et le code
choisirait "dynamiquement" le code adapté, je m'exprime mal, mais je
voudrais dire que si j'ai T = int et
T a, b;
a + b
ou bien
T = UneClasseQuiSurchargelOpe+;
a + b;
Il choisirait dynamiquement le cas adapté
Techniquement si on veut pouvoir charger dynamiquement des libraires
il faudrait cela...
J'espère ne pas trop vous ennuyer merci bcp
l'instantiation
des templates (que ce soit compilé séparément ou non) est
*conceptuellement* « copie + substitution » et non « interprétation du
même (byte)code »
l'instantiation
des templates (que ce soit compilé séparément ou non) est
*conceptuellement* « copie + substitution » et non « interprétation du
même (byte)code »
l'instantiation
des templates (que ce soit compilé séparément ou non) est
*conceptuellement* « copie + substitution » et non « interprétation du
même (byte)code »
Tux wrote:Merci pour les réponces (même si mes questions étaient un peu
stupides:) ) J'ai regardé un peu à travers le web et les newsgroup.
Et bien j'ai toujours l'impression d'être dans le flou à propos
d'export ... Qu'est-ce que la norme impose ?
Je ne pense pas que la norme impose une implémentation quelconque...1) A-t-on une technique permettant d'optimiser le linkage ?
Que veux-tu dire par "optimiser" ?
J'avais ceci dans un thread sur export :
2) Est-ce que la "classe template" est compilée une fois et le code
choisirait "dynamiquement" le code adapté, je m'exprime mal, mais je
voudrais dire que si j'ai T = int et
T a, b;
a + b
ou bien
T = UneClasseQuiSurchargelOpe+;
a + b;
Il choisirait dynamiquement le cas adapté
Hum, dans l'exemple que tu donnes, il n'y a pas de linkage dynamique : la
fonction template appelle une autre fonction, c'est l'éditeur de lien, en
dernier recours, qui va résoudre l'appel...Techniquement si on veut pouvoir charger dynamiquement des libraires
il faudrait cela...
Attention à ne pas confondre linkage dynamique et librairie dynamique (qui
n'est pas couvert par la norme)...
Oui je comprends, je pensais que cela pouvait fonctionner avec les
J'espère ne pas trop vous ennuyer merci bcp
ça ira pour cette fois ;)
Sérieusement, si tes questions ennuient quelqu'un, il n'est pas obligé de
les lire jusqu'au bout. De plus, il y a à parier que les réponses (je ne
parle pas des miennes, connaissant assez peu la faon dont import est
implémentée) en intéresseront plus d'un...
Chris
Tux wrote:
Merci pour les réponces (même si mes questions étaient un peu
stupides:) ) J'ai regardé un peu à travers le web et les newsgroup.
Et bien j'ai toujours l'impression d'être dans le flou à propos
d'export ... Qu'est-ce que la norme impose ?
Je ne pense pas que la norme impose une implémentation quelconque...
1) A-t-on une technique permettant d'optimiser le linkage ?
Que veux-tu dire par "optimiser" ?
J'avais ceci dans un thread sur export :
2) Est-ce que la "classe template" est compilée une fois et le code
choisirait "dynamiquement" le code adapté, je m'exprime mal, mais je
voudrais dire que si j'ai T = int et
T a, b;
a + b
ou bien
T = UneClasseQuiSurchargelOpe+;
a + b;
Il choisirait dynamiquement le cas adapté
Hum, dans l'exemple que tu donnes, il n'y a pas de linkage dynamique : la
fonction template appelle une autre fonction, c'est l'éditeur de lien, en
dernier recours, qui va résoudre l'appel...
Techniquement si on veut pouvoir charger dynamiquement des libraires
il faudrait cela...
Attention à ne pas confondre linkage dynamique et librairie dynamique (qui
n'est pas couvert par la norme)...
Oui je comprends, je pensais que cela pouvait fonctionner avec les
J'espère ne pas trop vous ennuyer merci bcp
ça ira pour cette fois ;)
Sérieusement, si tes questions ennuient quelqu'un, il n'est pas obligé de
les lire jusqu'au bout. De plus, il y a à parier que les réponses (je ne
parle pas des miennes, connaissant assez peu la faon dont import est
implémentée) en intéresseront plus d'un...
Chris
Tux wrote:Merci pour les réponces (même si mes questions étaient un peu
stupides:) ) J'ai regardé un peu à travers le web et les newsgroup.
Et bien j'ai toujours l'impression d'être dans le flou à propos
d'export ... Qu'est-ce que la norme impose ?
Je ne pense pas que la norme impose une implémentation quelconque...1) A-t-on une technique permettant d'optimiser le linkage ?
Que veux-tu dire par "optimiser" ?
J'avais ceci dans un thread sur export :
2) Est-ce que la "classe template" est compilée une fois et le code
choisirait "dynamiquement" le code adapté, je m'exprime mal, mais je
voudrais dire que si j'ai T = int et
T a, b;
a + b
ou bien
T = UneClasseQuiSurchargelOpe+;
a + b;
Il choisirait dynamiquement le cas adapté
Hum, dans l'exemple que tu donnes, il n'y a pas de linkage dynamique : la
fonction template appelle une autre fonction, c'est l'éditeur de lien, en
dernier recours, qui va résoudre l'appel...Techniquement si on veut pouvoir charger dynamiquement des libraires
il faudrait cela...
Attention à ne pas confondre linkage dynamique et librairie dynamique (qui
n'est pas couvert par la norme)...
Oui je comprends, je pensais que cela pouvait fonctionner avec les
J'espère ne pas trop vous ennuyer merci bcp
ça ira pour cette fois ;)
Sérieusement, si tes questions ennuient quelqu'un, il n'est pas obligé de
les lire jusqu'au bout. De plus, il y a à parier que les réponses (je ne
parle pas des miennes, connaissant assez peu la faon dont import est
implémentée) en intéresseront plus d'un...
Chris
"Christophe Lephay" writes:Une question au passage : de même qu'Omo lave plus blanc que blanc,
quelle forme prennent les messages d'erreur concernant les
templates, qui étaient déjà pour le moins absconds ?
ausi abscons que abscons :-)
Plus sérieusement, d'après mes expériences avec la version de EDG que
j'ai, je n'ai pas noté une dégradation de la qualité des messages
d'erreur...
"Christophe Lephay" <christophe-lephay@wanadoo.fr> writes:
Une question au passage : de même qu'Omo lave plus blanc que blanc,
quelle forme prennent les messages d'erreur concernant les
templates, qui étaient déjà pour le moins absconds ?
ausi abscons que abscons :-)
Plus sérieusement, d'après mes expériences avec la version de EDG que
j'ai, je n'ai pas noté une dégradation de la qualité des messages
d'erreur...
"Christophe Lephay" writes:Une question au passage : de même qu'Omo lave plus blanc que blanc,
quelle forme prennent les messages d'erreur concernant les
templates, qui étaient déjà pour le moins absconds ?
ausi abscons que abscons :-)
Plus sérieusement, d'après mes expériences avec la version de EDG que
j'ai, je n'ai pas noté une dégradation de la qualité des messages
d'erreur...
1) A-t-on une technique permettant d'optimiser le linkage ?
Que veux-tu dire par "optimiser" ?
J'avais ceci dans un thread sur export :
"En passant, je travaillais sur un cas aujourd'hui où j'aurais bien
été content d'avoir export. J'ajoutais de la fonctionnalité à un
template, Plus précisement, j'ajoutais une fonction à une template de
classe, dont une instance était contenue dans une classe non
templatée qui servait à peu près partout. Évidemment, il n'y avait
qu'une seule source qui utilisait la nouvelle fonction. Mais du fait
que ma classe non-templatée incluait l'en-tête avec la définition du
template (obligatioire, puisqu'elle en avait un membre qui en était
une instance), et que l'entête de cette classe était inclue dans un
trentaine de fichiers, chaque fois que je modifiais l'implémentation
de cette nouvelle fonction, make récompilait une trentaine de
fichiers, tandis qu'un seul aurait suffit."
Attention à ne pas confondre linkage dynamique et librairie
dynamique (qui n'est pas couvert par la norme)...
Oui je comprends, je pensais que cela pouvait fonctionner avec les
librairies chargées dynamiquement (C'est pour cela que je m'étais dit
qu'on aurait du avoir du code dynamique suivant le type des templates
enfin je charge dynamiquement la lib j'importe la classe templ avec un
template de type int , la même classe avec un type XY,... )...
Mais ce qui est sure c'est que cela est quand même complexe a
implémenter dans un compilateur mais je trouve que c'est un sujet très
passionnent.
Est-ce que export est prévu dans g++ dans un futur proche ?
Et oui, autre question qu'est-ce qu'il manque à g++ pour être je
dirais complet ?
1) A-t-on une technique permettant d'optimiser le linkage ?
Que veux-tu dire par "optimiser" ?
J'avais ceci dans un thread sur export :
"En passant, je travaillais sur un cas aujourd'hui où j'aurais bien
été content d'avoir export. J'ajoutais de la fonctionnalité à un
template, Plus précisement, j'ajoutais une fonction à une template de
classe, dont une instance était contenue dans une classe non
templatée qui servait à peu près partout. Évidemment, il n'y avait
qu'une seule source qui utilisait la nouvelle fonction. Mais du fait
que ma classe non-templatée incluait l'en-tête avec la définition du
template (obligatioire, puisqu'elle en avait un membre qui en était
une instance), et que l'entête de cette classe était inclue dans un
trentaine de fichiers, chaque fois que je modifiais l'implémentation
de cette nouvelle fonction, make récompilait une trentaine de
fichiers, tandis qu'un seul aurait suffit."
Attention à ne pas confondre linkage dynamique et librairie
dynamique (qui n'est pas couvert par la norme)...
Oui je comprends, je pensais que cela pouvait fonctionner avec les
librairies chargées dynamiquement (C'est pour cela que je m'étais dit
qu'on aurait du avoir du code dynamique suivant le type des templates
enfin je charge dynamiquement la lib j'importe la classe templ avec un
template de type int , la même classe avec un type XY,... )...
Mais ce qui est sure c'est que cela est quand même complexe a
implémenter dans un compilateur mais je trouve que c'est un sujet très
passionnent.
Est-ce que export est prévu dans g++ dans un futur proche ?
Et oui, autre question qu'est-ce qu'il manque à g++ pour être je
dirais complet ?
1) A-t-on une technique permettant d'optimiser le linkage ?
Que veux-tu dire par "optimiser" ?
J'avais ceci dans un thread sur export :
"En passant, je travaillais sur un cas aujourd'hui où j'aurais bien
été content d'avoir export. J'ajoutais de la fonctionnalité à un
template, Plus précisement, j'ajoutais une fonction à une template de
classe, dont une instance était contenue dans une classe non
templatée qui servait à peu près partout. Évidemment, il n'y avait
qu'une seule source qui utilisait la nouvelle fonction. Mais du fait
que ma classe non-templatée incluait l'en-tête avec la définition du
template (obligatioire, puisqu'elle en avait un membre qui en était
une instance), et que l'entête de cette classe était inclue dans un
trentaine de fichiers, chaque fois que je modifiais l'implémentation
de cette nouvelle fonction, make récompilait une trentaine de
fichiers, tandis qu'un seul aurait suffit."
Attention à ne pas confondre linkage dynamique et librairie
dynamique (qui n'est pas couvert par la norme)...
Oui je comprends, je pensais que cela pouvait fonctionner avec les
librairies chargées dynamiquement (C'est pour cela que je m'étais dit
qu'on aurait du avoir du code dynamique suivant le type des templates
enfin je charge dynamiquement la lib j'importe la classe templ avec un
template de type int , la même classe avec un type XY,... )...
Mais ce qui est sure c'est que cela est quand même complexe a
implémenter dans un compilateur mais je trouve que c'est un sujet très
passionnent.
Est-ce que export est prévu dans g++ dans un futur proche ?
Et oui, autre question qu'est-ce qu'il manque à g++ pour être je
dirais complet ?