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