#ifndef est quand meme vachement utile pour eviter de parser 25 fois le meme header.
Ça rends les choses "moins pire" on va dire. #ifndef t'empechera de parser 25 fois le même header pour compiler le même fichier source.cpp mais il te fera quand même parser 100 fois le même header si tu l'inclues 100 fois depuis différents fichiers.
Ça reste acceptable si tes headers sont de simple déclarations et des forwards comme en C. Ça l'est malheureusement beaucoup moins quand les headers contiennent du code templaté comme en C++.
Le gros soucis avec le "#include header" c'est que c'est stateful. Le résultat de ton include varie suivant les déclarations ou pre-processor précédent ton include.... Et ça c'est un cauchemar à optimiser / pre-compiler pour un compiler.
[^] # Re: C'est bien dommage
Posté par Firwen (site web personnel) . En réponse au journal C++17 est sur les rails. Évalué à 4. Dernière modification le 14 mars 2016 à 20:38.
Ça rends les choses "moins pire" on va dire. #ifndef t'empechera de parser 25 fois le même header pour compiler le même fichier source.cpp mais il te fera quand même parser 100 fois le même header si tu l'inclues 100 fois depuis différents fichiers.
Ça reste acceptable si tes headers sont de simple déclarations et des forwards comme en C. Ça l'est malheureusement beaucoup moins quand les headers contiennent du code templaté comme en C++.
Le gros soucis avec le "#include header" c'est que c'est stateful. Le résultat de ton include varie suivant les déclarations ou pre-processor précédent ton include.... Et ça c'est un cauchemar à optimiser / pre-compiler pour un compiler.