1
Merci

Quelques mots de remerciements seront grandement appréciés.

Les inlines en C++



Signification


Le mot-clé inline est utilisé en C++ et s'applique à une fonction. Il indique au compilateur que chaque appel à la fonction inline devra être remplacé par le corps de cette fonction. Afin de générer un exécutable de taille raisonnable, il est donc en pratique utilisé pour des fonctions "courtes" en terme de nombre d'instructions.

Le mot clé inline présente l'avantage d'accélérer un programme si celui-ci fait régulièrement appel à la fonction inline. Il permet de condenser sensiblement le code, en particulier pour les accesseurs d'une classe. Un accesseur de classe est typiquement une fonction d'une ligne

Exemple 1


main.cpp
#include <iostream> 
inline void ma_fonction(){ 
  std::cout << "j'aime les tapirs" << std::endl; 
} 

class ma_structure_t{ 
  protected: 
    int x; 
  public: 
    ma_structure_t(int x0):x(x0){} 
    inline int get_x() const{ 
      return x; 
    } 
}; 

int main(){ 
  ma_fonction(); 
  ma_structure_t s(7); 
  std::cout << s.get_x() << std::endl; 
  return 0; 
} 

Inline et headers


Le inline permet de déclarer et d'implémenter des fonctions directement dans un header (.hpp) sans risque de multi-définition. En effet le symbole de la fonction inline n'apparaît jamais explicitement au moment du linkage puisque les appels à cette fonction ont tous été remplacés. Rappelons que si une fonction n'est pas inline, est implémentée dans un header, et que ce header est inclus à plusieurs endroits, le compilateur retournera une erreur de définition multiple.

Rappelons qu'hormis les fonctions templates, seules les fonctions inline peuvent être implémentées dans le header. Une fonction template peut tout à fait être inline.

Exemple 2


fichier.hpp
inline void f();

fichier.cpp :
#include <iostream> 
#include "fichier.hpp" 

void f(){ 
  std::cout << "plop !" << std::endl; 
} 
1
Merci

Quelques mots de remerciements seront grandement appréciés.

Cet article est régulièrement mis à jour par des experts sous la
direction de Jean-François Pillou, fondateur de CommentCaMarche
et directeur délégué au développement numérique du groupe Figaro.

A voir également

Publié par . Dernière mise à jour le par mamiemando.

Ce document intitulé «  Les inlines en C++  » issu de CommentCaMarche (https://www.commentcamarche.net/) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.

0 Commentaire