Le mot-clé inline
n'a rien à voir avec les performances de nos jours et n'a rien à voir avec l'intégration d'une fonction!
En fait, il s'agit de la règle de définition unique (ou ODR)! L'ODR stipule qu'un programme C++ doit avoir une seule définition de chaque fonction.
Cela signifie que ce qui suit est produira une erreur:
file.cpp
void fun() {}
main.cpp
void fun() {}
Ceci est un erreur, car il existe deux définitions de la même fonction dans deux unités de traduction différentes (fichiers .cpp
), ce qui constitue une violation de l'ODR.
Maintenant, le mot-clé inline
vous permet de contourner ce problème. Il vous permet de définir la même fonction dans plusieurs unités de traduction, tant que le corps de la fonction est exactement le même! Cela vous permet de définir la fonction dans un fichier d'en-tête qui peut ensuite être inclus dans plusieurs fichiers .cpp
.
Cela étant dit. Ce que vous avez décrit et non provoque un ralentissement des performances. Le compilateur alignera les fonctions correctes au moment approprié. Votre code fonctionnera plus vite que vous ne pourriez le faire vous-même.
Inline de nos jours n'est pas sur la performance – deviantfan
Ecrivez le code pour que cela fonctionne. Si elle est lente, utilisez un profileur pour déterminer ce qui est lent et réparer cette partie. Répétez au besoin. Ne décidez pas simplement que vous devez tout mettre en ligne. – crashmstr
@deviantfan alors quelle est votre suggestion sur la performance? –