OVH Cloud OVH Cloud

Merci de votre aide

22 réponses
Avatar
Frédéric DURY-GHERRAK
Bonjour,

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 ?

Merci

10 réponses

1 2 3
Avatar
Arnaud Meurgues
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.

--
Arnaud



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


Avatar
loufoque

et le jour où on a un compilo avec export


Cela n'arrivera jamais.

Avatar
Jean-Marc Bourguet
loufoque 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


Avatar
loufoque

J'en ai deux...


Je parlais de gcc, en fait.

Avatar
Jean-Marc Bourguet
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. 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


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



Avatar
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




Avatar
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 ?

http://gcc.gnu.org/ml/gcc/2005-11/msg00735.html
http://gcc.gnu.org/projects/lto/lto.pdf

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



1 2 3