OVH Cloud OVH Cloud

fonction 'static'

31 réponses
Avatar
Michaël Delva
Bonjour à tous,

j'ai une classe avec des fonctions en 'static'

Je suis obligé d'écrire l'implémentation de ces fonctions dans le même
fichier que leur déclaration?

Merci d'avance...

1 réponse

1 2 3 4
Avatar
Anthony Fleury
Gabriel Dos Reis wrote:

Anthony Fleury writes:
| Pourquoi cette restriction ??

Il faut une exigence quelque part. Oui bien tu la mets sur
l'utilisateur ou bien tu la mets sur l'implémenteur (ou parfois les
deux). Cela demande plus d'infrastructure d'inliner trans uniter de
traduction que d'avoir le corps disponible dans chaque unité de
traduction. Si tu demandes trop de travail aux implémenteurs, ils ne
feront qu'à leurs têtes et il peut arriver qu'ils fassent n'importe
quoi. Et que tu n'aies pas la fonctionnalité que tu veux.
Alors, tu demandes un peu d'effort de la part de l'utilisateur.
N'oublie pas, « inline » a été introduit en C with Classes vers 1981
avec l'exigence que ce soit utile ici et maintenant. 25 ans plus tard,
peu de progrès ont été faits :-(


Merci pour cette réponse, en fait je ne savais pas que inline datait
d'autant (je n'étais pas encore né) et je ne voyais pas le pourquoi de
cette restriction étant donné que, comme l'a précisé James ensuite, il y a
export. Et je m'étais persuadé un jour de reflexion que si export existait
sur un compilateur alors inline pouvait facilement avoir le comportement
actuel mais sans que la définition de la fonction ne soit présente dans
toute unité de traduction. Apparement je ne m'étais pas trompé ?!

Anthony
--
"You could be my unintended, choice to live my life extended
You should be the one I'll always love, I'll be there as soon as I can
But I'm busy mending broken pieces of the life I had before"
(C) Muse - Unintended

1 2 3 4