#pragma once contre include guards : que choisir pour éviter les inclusions multiples ?
Bonjour à tous ! Je suis un développeur C++ débutant et j'ai déjà rencontré plusieurs fois le problème de double inclusion de fichiers d'en-tête. Par exemple, j'ai ce code :
\n\n// math_utils.h\n#ifndef MATH_UTILS_H\n#define MATH_UTILS_H\n\nint add(int a, int b) { return a + b; }\n\n#endif\n\n// main.cpp\n#include "math_utils.h"\n#include "math_utils.h" // inclus accidentellement deux fois\n\nint main() {\n return add(2, 3);\n}\n\n\nAvec les include guards, tout fonctionne, mais j'ai remarqué que de nombreux projets modernes (par exemple, ceux de Boost) utilisent #pragma once. J'ai lu que c'est une directive non standard, mais elle est supportée par tous les principaux compilateurs.
Ce qui m'intéresse :
\n- \n
- Y a-t-il de réels problèmes de performance avec les include guards ? \n
No answers yet.
Connectez-vous pour laisser une réponse
Blogs