OVH Cloud OVH Cloud

Export

14 réponses
Avatar
Tux
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 ...

Et sinon est-ce qu'ils n'ont pas envie de trouver une autre solution...

Merci

4 réponses

1 2
Avatar
Gabriel Dos Reis
Tux writes:

| Est-ce que export est prévu dans g++ dans un futur proche ?

futur proche, je ne sais pas. Est-ce que les développeurs y pensent ?
Certainement oui.

| Et oui, autre question qu'est-ce qu'il manque à g++ pour être je dirais
| complet ?

volonté politique, mais je crains que fr.comp.lang.c++ ne soit pas le
bon forum pour en discuter.

-- Gaby
Avatar
Jean-Marc Bourguet
Tux writes:

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 ?


Comme pour tout, un comportement, pas directement une implementation.

Donc, que tu puisses mettre la definition dans une seule unite de
compilation.

1) A-t-on une technique permettant d'optimiser le linkage ?


Comprend pas la question.

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é


La semantique des templates en C++ est tres mal adaptee au partage des
templates. Celui-ci sont quasiment imposes dans certains langages
(Eiffel, Modula-3 entre autres), possible dans d'autres (Ada, au moins
pour Ada83 il y avait des compilateurs qui permettaient de choisir
avec un pragma; pour Ada 95 la norme est ecrite de maniere a laisser
le choix mais il me semble qu'il n'y a aucun compilateur qui utilise
le partage). C++ est a l'autre extreme, il impose quasiment le non
partage.

Techniquement si on veut pouvoir charger dynamiquement des libraires
il faudrait cela...


Si tu dire permettre de changer l'implementation d'un template en ne
changeant qu'une bibliotheque dynamique compilee sans connaitre les
instanciations possibles, effectivement C++ n'est pas directement
adapte (mais si c'est necessaire, on peut le faire a la main, avec le
template qui herite d'une classe non template ayant des virtuelles qui
vont bien).

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

Avatar
Jean-Marc Bourguet
Gabriel Dos Reis writes:

Tux writes:

| Et bien j'ai toujours l'impression d'être dans le flou à propos
| d'export ... Qu'est-ce que la norme impose ?

En général, la norme se garde d'imposer des détails
d'implémentations. Tout ce qui est certain, c'est que 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 » (comme c'est habituellement le cas des langages
comme Standard ML ou OCaml qui ont eux aussi la généricité paramétrique).
La différence entre les deux modèles se voient au niveau des adresses
des entités.


Faire fonctionner les specialisations explicites avec un modele
partage doit aussi poser quelques difficultes.

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

Avatar
Jean-Marc Bourguet
Gabriel Dos Reis writes:

"Christophe Lephay" writes:

| Gabriel Dos Reis wrote:
[...]

| 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...


D'apres mon experience, c'est exactement les memes (il y a bien
quelques erreurs en plus qui sont detectees, mais les messages
d'erreur ne sont pas plus abscons que d'habitude).

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

1 2