Je ne suis qu'intermediaire pour poser une question au profit d'un de mes
stagiaires actuellement incarcéré
voici son post tel qu'il l'a rédigé :
"Je définis une classe à l'aide d'un template dans un fichier ".h" et je
fais les déclarations dns un fichier ".cpp" en ajoutant le mot-clé "export"
devant chq m"thode comme prescrit dans le straistrup.
Tou compile correctement (avec g++ 3.3.2) mais quand je tente de lier le
".o" au ".so" avec un programme, le compilateur me dit que toutes les
méthodes du "cpp" sont "undefined".
Y a-t-il une option du compilateur à utiliser ?
Inclure un ".cpp" dans un header ... Hahem ... Et, comment fais-tu toi avec des templates ?
Dans un fichier d'entête.
Ce n'est qu'une convention de nommage.
L'appeler .cpp permet de montrer que c'est une implémentation. on pourrait l'appeler .hpp pour le distinguer d'un .cpp, mais ça reste éminemment conventionnel.
-- Arnaud
TERENCE wrote:
Inclure un ".cpp" dans un header ... Hahem ...
Et, comment fais-tu toi avec des templates ?
Dans un fichier d'entête.
Ce n'est qu'une convention de nommage.
L'appeler .cpp permet de montrer que c'est une implémentation. on
pourrait l'appeler .hpp pour le distinguer d'un .cpp, mais ça reste
éminemment conventionnel.
Inclure un ".cpp" dans un header ... Hahem ... Et, comment fais-tu toi avec des templates ?
Dans un fichier d'entête.
Ce n'est qu'une convention de nommage.
L'appeler .cpp permet de montrer que c'est une implémentation. on pourrait l'appeler .hpp pour le distinguer d'un .cpp, mais ça reste éminemment conventionnel.
-- Arnaud
TERENCE
"Marc Boyer" a écrit dans le message de news:
C'est à dire que tu mets tout le code dans le .h ?
Oses-tu dire sérieusement que c'est mieux ?
Mieux ? Non, je ne dirai pas mieux. Possible, oui, suivant les personnes, le projet, l'environnment.
Mettre le #include du code dans le .h permet de séparer dans deux fichiers interface et implémentation, et le jour où on a un compilo avec export, il sera plus simple de simplement enlever le #include du .h (un simple grep...).
Oui, tu as raison. Mais, il sera tout aussi posible d'utiliser les .h dans cette circonstance, et en plus tu économises le grep pour supprimer les #include.
Après, si on utilise des règles implicites dans un truc genre makefile, on peut préférer mettre les codes des templates dans un .tpp et donc faire un #include du .tpp dans le .h.
En tous cas je suis du même avis que Arnaud Meurgues, c'est juste une convention de nommage.
"Marc Boyer" <Marc.Boyer@enseeiht.yahoo.fr.invalid> a écrit dans le message de news:slrne12lus.9go.Marc.Boyer@localhost.localdomain...
C'est à dire que tu mets tout le code dans le .h ?
Oses-tu dire sérieusement que c'est mieux ?
Mieux ? Non, je ne dirai pas mieux.
Possible, oui, suivant les personnes, le projet, l'environnment.
Mettre le #include du code dans le .h permet de
séparer dans deux fichiers interface et implémentation,
et le jour où on a un compilo avec export, il sera plus
simple de simplement enlever le #include du .h (un simple
grep...).
Oui, tu as raison.
Mais, il sera tout aussi posible d'utiliser les .h dans cette circonstance, et en plus tu économises le grep pour supprimer les #include.
Après, si on utilise des règles implicites dans un truc
genre makefile, on peut préférer mettre les codes des
templates dans un .tpp et donc faire un #include du .tpp
dans le .h.
En tous cas je suis du même avis que Arnaud Meurgues, c'est juste une convention de nommage.
C'est à dire que tu mets tout le code dans le .h ?
Oses-tu dire sérieusement que c'est mieux ?
Mieux ? Non, je ne dirai pas mieux. Possible, oui, suivant les personnes, le projet, l'environnment.
Mettre le #include du code dans le .h permet de séparer dans deux fichiers interface et implémentation, et le jour où on a un compilo avec export, il sera plus simple de simplement enlever le #include du .h (un simple grep...).
Oui, tu as raison. Mais, il sera tout aussi posible d'utiliser les .h dans cette circonstance, et en plus tu économises le grep pour supprimer les #include.
Après, si on utilise des règles implicites dans un truc genre makefile, on peut préférer mettre les codes des templates dans un .tpp et donc faire un #include du .tpp dans le .h.
En tous cas je suis du même avis que Arnaud Meurgues, c'est juste une convention de nommage.
-- 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
loufoque <loufoque@remove.gmail.com> writes:
et le jour où on a un compilo avec export
Cela n'arrivera jamais.
J'en ai deux...
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
-- 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
Pas sur. Ils ont des plans pour faire de l'optimisation a l'edition de liens. Suivant l'architecture choisie pour le faire, ce peut etre une infrastructure qui permet d'implementer export relativement facilement.
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
loufoque <loufoque@remove.gmail.com> writes:
J'en ai deux...
Je parlais de gcc, en fait.
Pas sur. Ils ont des plans pour faire de l'optimisation a l'edition
de liens. Suivant l'architecture choisie pour le faire, ce peut etre
une infrastructure qui permet d'implementer export relativement
facilement.
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
Pas sur. Ils ont des plans pour faire de l'optimisation a l'edition de liens. Suivant l'architecture choisie pour le faire, ce peut etre une infrastructure qui permet d'implementer export relativement facilement.
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.chene.nospam
Jean-Marc Bourguet writes:
loufoque writes:
et le jour où on a un compilo avec export
Cela n'arrivera jamais.
J'en ai deux...
Dont un gratuit pour une utilisation non commerciale sur plateforme intel ;-) Et ça marche o/
-- Fab --
Jean-Marc Bourguet <jm@bourguet.org> writes:
loufoque <loufoque@remove.gmail.com> writes:
et le jour où on a un compilo avec export
Cela n'arrivera jamais.
J'en ai deux...
Dont un gratuit pour une utilisation non commerciale sur plateforme
intel ;-)
Et ça marche o/
Dont un gratuit pour une utilisation non commerciale sur plateforme intel ;-) Et ça marche o/
-- Fab --
Jean-Marc Bourguet
(Fabien CHÊNE) writes:
Jean-Marc Bourguet writes:
loufoque writes:
et le jour où on a un compilo avec export
Cela n'arrivera jamais.
J'en ai deux...
Dont un gratuit pour une utilisation non commerciale sur plateforme intel ;-) Et ça marche o/
Et l'autre qui m'a coute 43$... j'ai payé des livres qui m'ont moins servi plus cher.
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
Dont un gratuit pour une utilisation non commerciale sur plateforme
intel ;-)
Et ça marche o/
Et l'autre qui m'a coute 43$... j'ai payé des livres qui
m'ont moins servi plus cher.
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
Dont un gratuit pour une utilisation non commerciale sur plateforme intel ;-) Et ça marche o/
Et l'autre qui m'a coute 43$... j'ai payé des livres qui m'ont moins servi plus cher.
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
Gabriel Dos Reis
(Fabien CHÊNE) writes:
| Jean-Marc Bourguet writes: | | > loufoque writes: | > | >> | >> > J'en ai deux... | >> | >> Je parlais de gcc, en fait. | > | > Pas sur. Ils ont des plans pour faire de l'optimisation a l'edition | > de liens. | | Est-ce dans le wiki de gcc.gnu.org pour 4.2 ?
| > Suivant l'architecture choisie pour le faire, ce peut etre | > une infrastructure qui permet d'implementer export relativement | > facilement. | | Je pense que tu as du lire le n1964 et ses prédécesseurs pour | l'introduction de modules en C++. Si C++ évolue dans ce sens, | l'implémentation d'export va devenir assez cruciale.
pour ceux qui n'ont pas eu la chance de suivre les débats « internes », je me souviens avoir entendu David dire que l'implémentation de la proposition serait une conséquence pour un système qui a déjà implémenté « export. » (bien sûr, il reste des détails au niveau du langage à fixer.)
| Jean-Marc Bourguet <jm@bourguet.org> writes:
|
| > loufoque <loufoque@remove.gmail.com> writes:
| >
| >>
| >> > J'en ai deux...
| >>
| >> Je parlais de gcc, en fait.
| >
| > Pas sur. Ils ont des plans pour faire de l'optimisation a l'edition
| > de liens.
|
| Est-ce dans le wiki de gcc.gnu.org pour 4.2 ?
| > Suivant l'architecture choisie pour le faire, ce peut etre
| > une infrastructure qui permet d'implementer export relativement
| > facilement.
|
| Je pense que tu as du lire le n1964 et ses prédécesseurs pour
| l'introduction de modules en C++. Si C++ évolue dans ce sens,
| l'implémentation d'export va devenir assez cruciale.
pour ceux qui n'ont pas eu la chance de suivre les débats « internes »,
je me souviens avoir entendu David dire que l'implémentation de la
proposition serait une conséquence pour un système qui a déjà
implémenté « export. » (bien sûr, il reste des détails au niveau du
langage à fixer.)
| Jean-Marc Bourguet writes: | | > loufoque writes: | > | >> | >> > J'en ai deux... | >> | >> Je parlais de gcc, en fait. | > | > Pas sur. Ils ont des plans pour faire de l'optimisation a l'edition | > de liens. | | Est-ce dans le wiki de gcc.gnu.org pour 4.2 ?
| > Suivant l'architecture choisie pour le faire, ce peut etre | > une infrastructure qui permet d'implementer export relativement | > facilement. | | Je pense que tu as du lire le n1964 et ses prédécesseurs pour | l'introduction de modules en C++. Si C++ évolue dans ce sens, | l'implémentation d'export va devenir assez cruciale.
pour ceux qui n'ont pas eu la chance de suivre les débats « internes », je me souviens avoir entendu David dire que l'implémentation de la proposition serait une conséquence pour un système qui a déjà implémenté « export. » (bien sûr, il reste des détails au niveau du langage à fixer.)
-- Gaby
fabien.chene.nospam
Jean-Marc Bourguet writes:
loufoque writes:
J'en ai deux...
Je parlais de gcc, en fait.
Pas sur. Ils ont des plans pour faire de l'optimisation a l'edition de liens.
Est-ce dans le wiki de gcc.gnu.org pour 4.2 ?
Suivant l'architecture choisie pour le faire, ce peut etre une infrastructure qui permet d'implementer export relativement facilement.
Je pense que tu as du lire le n1964 et ses prédécesseurs pour l'introduction de modules en C++. Si C++ évolue dans ce sens, l'implémentation d'export va devenir assez cruciale.
-- Fab
Jean-Marc Bourguet <jm@bourguet.org> writes:
loufoque <loufoque@remove.gmail.com> writes:
J'en ai deux...
Je parlais de gcc, en fait.
Pas sur. Ils ont des plans pour faire de l'optimisation a l'edition
de liens.
Est-ce dans le wiki de gcc.gnu.org pour 4.2 ?
Suivant l'architecture choisie pour le faire, ce peut etre
une infrastructure qui permet d'implementer export relativement
facilement.
Je pense que tu as du lire le n1964 et ses prédécesseurs pour
l'introduction de modules en C++. Si C++ évolue dans ce sens,
l'implémentation d'export va devenir assez cruciale.
Pas sur. Ils ont des plans pour faire de l'optimisation a l'edition de liens.
Est-ce dans le wiki de gcc.gnu.org pour 4.2 ?
Suivant l'architecture choisie pour le faire, ce peut etre une infrastructure qui permet d'implementer export relativement facilement.
Je pense que tu as du lire le n1964 et ses prédécesseurs pour l'introduction de modules en C++. Si C++ évolue dans ce sens, l'implémentation d'export va devenir assez cruciale.