OVH Cloud OVH Cloud

question en une ligne ( inline )

11 réponses
Avatar
Geoffrey
bonjour,

je pensais que le mot clef "inline" ne s'utilisait uniquement que dans les
fichier en-tête.
Visiblement ce n'est pas le cas, le compilateur ( MSVC++2003 ) accepte les
fonctions "inline" dans le fichier cpp.

Ma question est : est-ce que cela a une influence sur la compilation du
code, si ces fonctions sont situées dans le .h ou le .cpp ???

Est ce que c'est "propre" de faire ca ?

tous les commentaires m'interessent, merci ;))

1 réponse

1 2
Avatar
bernard tatin
bernard tatin wrote:

[...]

La sémantique d'une fonction inline est exactement la même que
si elle n'était pas inline. Du coup, le remplacer par static ne
marche pas à tous les coups. Sous Solaris, au moins (et je crois
en général, au moins sous Unix), la solution a été de le générer
avec des liens « weak ». C-à-d que l'éditeur de liens l'ignore
s'il n'en a pas besoin, et le prend s'il en a.

Je ne savais pas ça ou putôt j'ai du le savoir mais j'ai oublié. En

faisant un peu de recherche sur Google avec 'weak symbols', j'ai appris
que ce mécanisme est apparu en C pour tester l'existence de
fonctionalités dans les bibliothèques (ici :
http://docs.sun.com/app/docs/doc/817-1984/6mhm7pl18?a=view). g++ utilise
aussi ce mécanisme, ce qui pose des problèmes dans l'écriture de modules
Linux en C++, et qui a poussé à la réecriture du chargeur de modules.

Bien que le prochain matin soit un Dimanche matin, je vais me coucher.

[...]
PS : P't-êt' ben qu'oui, t'es donc normand?


Moi non, mais quand j'apprenais le français, j'avais bien une
petite amie normande. Et de quelque part, j'ai l'impression de
ne pas vouloir s'engager, c'est typiquement normand -- j'ai
souvent entendu « p't-êt' ben qu'oui, p't-êt' ben que non » des
normands, mais rarement l'équivalent des gens qui n'étaient pas
normands.



Il n'y a rien de mieux que les petites amies étrangères pour apprendre
les langues étrangères et découvrir les expressions familères!

Bernard.


1 2