14 juin 2026
Éditeurs :
Il s’agit d’un document évolutif en constante amélioration. S’il s’agissait d’un projet open source (de code), il en serait à la version 0.8. La copie, l’utilisation, la modification et la création d’œuvres dérivées de ce projet sont régies par une licence de type MIT. Contribuer à ce projet implique d’accepter une licence de contributeur. Voir le fichier LICENCE accompagnant ce document pour plus de détails. Nous mettons ce projet à la disposition des « utilisateurs bienveillants » pour qu’ils puissent l’utiliser, le copier, le modifier et en dériver des travaux, en espérant recevoir des contributions constructives.
Les commentaires et les suggestions d’amélioration sont les bienvenus. Nous prévoyons de modifier et d’étendre ce document à mesure que notre compréhension progresse et que le langage et les bibliothèques disponibles évoluent. Lorsque vous formulez des commentaires, merci de consulter l’introduction qui expose nos objectifs et notre approche générale. La liste des contributeurs se trouve ici.
Problèmes :
Vous pouvez consulter une explication du périmètre et de la structure de ce guide ou vous y plonger directement :
Sections d’accompagnement :
Vous pouvez consulter des règles relatives à des fonctionnalités spécifiques du langage :
class :
données –
invariant –
membres –
fonctions utilitaires –
types concrets –
constructeurs, = et destructeurs –
hiérarchie –
opérateursconcept :
règles –
en programmation générique –
arguments de gabarit –
sémantiquethrow –
par défaut –
non nécessaire –
explicit –
délégation –
virtualdynamic_castthrow –
uniquement pour les erreurs –
noexcept –
minimiser try –
et en l’absence d’exceptions ?for :
range-for et for –
for et while –
initialisateur de boucle for –
corps vide –
variable de boucle –
type de la variable de boucle ??? @TODO-LINKinline :
petites fonctions –
dans les en-têtes{} –
expressions lambda –
initialisateurs de membres par défaut –
membres de classe –
fonctions fabriquespublic, private et protected :
masquage des informations –
cohérence –
protectedstatic_assert :
vérification en temps de compilation –
et les conceptsstruct :
pour organiser les données –
utiliser s’il n’y a pas d’invariant –
pas de membres privéstemplate :
abstraction –
conteneurs –
conceptsunsigned :
et signed –
manipulation de bitsvirtual :
interfaces –
non virtual –
destructeur –
ne jamais échouerVous pouvez consulter les concepts de conception utilisés pour formuler les règles :