L'utilisation de l'option inline
mot-clé (§ 7.1.3/4) :
- Il indices le compilateur que la substitution du corps de la fonction au point d'appel est préférable au mécanisme habituel d'appel de fonction.
- Même si la substitution en ligne est omise, les autres règles (notamment en ce qui concerne les Règle de la définition unique ) pour la mise en ligne sont suivies.
En général, tout compilateur classique substitue le corps de la fonction au point d'appel si nécessaire, de sorte que le marquage de la fonction inline
simplement pour #1
n'est pas vraiment nécessaire.
Plus loin #2
Si j'ai bien compris, lorsque vous déclarez une fonction en tant que static inline
fonction,
En static
sur la fonction force le mot-clé inline
pour avoir un lien interne ( les fonctions en ligne ont un lien externe ) Chaque instance d'une telle fonction est traitée comme une fonction distincte( l'adresse de chaque fonction est différente ) et chaque instance de ces fonctions possède sa propre copie des variables locales statiques et des chaînes de caractères littérales ( une fonction inline n'a qu'une seule copie de ces éléments )
Une telle fonction se comporte donc comme n'importe quelle autre fonction static
et le mot-clé inline
n'a plus d'importance, il devient redondant.
Ainsi, le marquage pratique d'une fonction static
y inline
les deux n'ont aucune utilité. Il faut soit static
( pas le plus préféré ) ou inline
( la plus préférée ),
Ainsi, l'utilisation de static
y inline
ensemble sur une fonction pratiquement inutile ?