====Coding style de Google==== Le style de code est presque identique pour le C et le C++. ===Présentation=== J'aime le coding style de Google car : * Globalement, le style me plait, * Faible indentation (2 espaces), * Il est supporté (et donc validé) par une grosse entreprise, J'aime moins et j'utilise moins souvent (C++ seulement) : * Mettre tous les passages d'objets en lecture seule par ''const &'' et les objets à modifier en pointeur. J'apporte les modifications suivantes : * Toujours le crochet ouvrant sur une nouvelle ligne. Quand on clique sur le crochet fermant, on sait dans quelle colonne est le crochet ouvrant quand il est mis en surbrillance. * On met les références ''&'' et les pointeurs ''*'' du coté du nom de la variable. Cela évite les erreurs avec le code suivant : ''int* a, b;'' qui pourrait laisser croire après une lecture rapide que b est aussi un pointeur. C'est une convention rarement utilisée mais je la préfère. Dans tous les cas, je déconseille d'utiliser la règle d'ajout d'un espace avant les parenthèses pour les fonctions. [[lang:c:preprocesseur#risque_du_coding_style_espace_avant_parenthese|Le préprocesseur n'aime pas cette règle]] et l'erreur de codage sera plus difficile à détecter. [[https://google.github.io/styleguide/cppguide.html|Google C++ Style Guide]] {{ :lang:cpp:codingstyle:google_c_style_guide_2019-10-04_21_21_46_.html |Archive du 05/09/2019 le 04/10/2019}} [[https://github.com/google/styleguide|Dépôt GitHub]] ===Formatage avec clang-format=== clang-format -style="{BasedOnStyle: google, BreakBeforeBraces: Custom, BraceWrapping: { AfterClass: true, AfterControlStatement: true, AfterEnum : true, AfterFunction : true, AfterNamespace : true, AfterObjCDeclaration: true, AfterStruct : true, AfterUnion : true, BeforeCatch : true, BeforeElse : true, IndentBraces : false }, ReflowComments: false, DerivePointerAlignment: false, PointerAlignment: Right }" -i file.cpp