Tout d'abord, je suis pas à la recherche d'un moyen de forcer le compilateur associé à la mise en œuvre de chaque fonction.
Pour réduire le niveau de réponses erronées assurez-vous de comprendre ce que l' inline
mot-clé signifie réellement. Voici une bonne description, inline vs statique vs extern.
Donc ma question, pourquoi ne pas marquer chaque définition de fonction inline
? ie Idéalement, la seule unité de compilation serait main.cpp
. Ou peut-être un peu plus pour les fonctions qui ne peuvent pas être définies dans un fichier d'en-tête (pimpl idiome, etc).
La théorie derrière cette demande étrange est qu'il donnerait l'optimiseur maximum d'informations pour travailler avec. Il pourrait fonction inline, les implémentations bien sûr, mais il pourrait aussi faire de la "croix-module d'optimisation", comme il n'y a qu'un seul module. Existe-il d'autres avantages?
Est-ce quelqu'un a essayé avec une application réelle? A l'augmentation de la performance? diminuer?!?
Quels sont les inconvénients de marquage de toutes les définitions de fonction inline
?
- La Compilation peut être plus lent et consomme beaucoup plus de mémoire.
- Itératif versions sont cassés, l'ensemble de l'application a besoin d'être reconstruit après chaque modification.
- Temps de liaison pourrait être astronomique
L'ensemble de ces inconvénient d'effet que le développeur. Quels sont le moteur d'exécution des inconvénients?