Guide de style pour C ++ [fermé]

29

En ce moment, j'utilise Google C ++ Style Guide dans mon code C ++ et j'en suis assez satisfait.

Récemment, on m'a dit que ce guide est très mauvais: il est utilisé en interne par Google (je le savais), est obsolète et promeut de très mauvaises pratiques. Je veux donc utiliser un autre style de codage.

Quels sont les guides de style C ++ bons et assez utilisés? J'écris du code pour gcc et Visual Studio, et j'utilise beaucoup de fonctionnalités C ++ 11.

Ce que j'ai beaucoup aimé dans le guide de style de Google C ++ était l'indentation, l'espace blanc et les conventions de dénomination (nommer spécialement toutes les classes, tous les types - y compris les typedefs, les alias de type et les alias de modèle - avec la première lettre majuscule).

Je sais que toute réponse est subjective (j'espère que c'est correct sur ce site) et j'apprécierais toute opinion, mais je suis intéressé par les guides utilisés ces jours-ci.

bolov
la source
1
Vous pouvez toujours utiliser le style de votre choix, puis le reformater au style préféré lorsque vous devez le partager. Voici un formateur de style qui automatise ce astyle.sourceforge.net
Reactgular
7
Cette question a un potentiel de réponses basées sur l'opinion. Plutôt que de le fermer pour cette raison, j'encourage les répondants à se concentrer sur les faits, tels que les utilisations connues, les recommandations des autorités, les études comparatives, etc.
andy256
@ andy256 Je n'aurais pas pu mieux dire moi-même.
bolov le
7
Qui vous a dit que le style de Google était mauvais et pourquoi leur opinion compte-t-elle pour vous?
Reactgular
@MathewFoscarini, il y a eu une discussion assez récente ici, même si elle n'était pas trop approfondie: chat.stackoverflow.com/rooms/10/conversation/… (mais ensuite, la parcourir en profondeur, c'est comme passer par la FQA )
Cubbi

Réponses:

15

Vous pouvez utiliser la directive de ce livre pour une utilisation générale:

http://www.amazon.com/Coding-Standards-Rules-Guidelines-Practices/dp/0321113586

de Herb Sutter et Andrei Alexandrescu. Il ne prend cependant pas en compte C ++ 11, mais je pense qu'il y aura une nouvelle édition.

Mais il ne répondra pas au sujet du nombre d'espace au lieu des tabulations ou du type de notation ésotérique que vous souhaitez appliquer. Mais ce n'est pas la chose la plus importante, la plupart du temps juste pour avoir une certaine cohérence est la clé.

Nikko
la source
22

Les lignes directrices de base C ++ sont un ensemble de lignes directrices, de règles et de meilleures pratiques éprouvées sur le codage en C ++, vous pouvez les trouver ici: https://github.com/isocpp/CppCoreGuidelines

Ils sont écrits par, entre autres, Bjarne Stroustrup et Herb Sutter .

Alessandro Jacopson
la source
1
Certainement mieux que la solution de Nikko
quand le
8

Les critiques du guide de style C ++ de Google (et je conviens que certaines sont justifiées) ne concernent pas les conventions de dénomination ou le style d'indentation de Google, mais plutôt certaines de leurs autres règles et politiques. Les conventions d'indentation / formatage et de dénomination sont toutes deux une question de goût et sont un terrain fertile pour des guerres religieuses de programmeurs sans fin, mais en C ++ où contrairement à C #, il n'y a pas de norme universelle, la seule directive vraiment importante est la cohérence. Pour un nouveau projet, choisissez une convention de dénomination et un style d'indentation que vous aimez et utilisez-le de manière cohérente. Pour un projet existant, respectez la convention déjà utilisée. La règle 0 dans les normes de codage C ++ est «Ne transpirez pas les petites choses». où ils soutiennent que les conventions de dénomination et le style d'indentation ne sont tout simplement pas si importants tant que vous '

Un gros booster de productivité pour moi a été d'automatiser l'indentation / le formatage en utilisant le format Clang . Une fois que vous avez défini certaines règles d'indentation et de formatage, je vous recommande vivement de configurer un fichier de configuration au format .clang personnalisé et de ne plus jamais vous en soucier :-)

Le format Clang est un outil autonome et ne nécessite pas que vous utilisiez clang comme compilateur. Il existe même un plugin officiel disponible pour Visual Studio.

mattnewport
la source
6

Comme @ user113896 l'a écrit plus tôt, Bjarne Strostrup nous a donné beaucoup de conseils de style. L'une de ses belles réalisations est le livre de style de codage JSF-C ++ . Attention, ce n'est pas pour le c ++ normal, plus pour une utilisation intégrée, mais cela montre comment les choses doivent être faites pour être claires et fonctionnelles. Bien sûr - vous n'avez pas à tout prendre en compte - c'est un guide, pas un carnet de commandes :).

baderman
la source
2

Si vous n'avez pas lu la programmation et les principes de Bjarne Stroustrup, je vous recommande fortement de le lire car vous pouvez apprendre beaucoup du créateur du langage. J'ai beaucoup regardé et lu de l'auteur C ++ et je peux dire qu'il a cette fixation pour le style et dit toujours aux gens d'écrire du bon et beau code qui, selon lui, est plus facile à déboguer et à lire. Je crois qu'il est le plus grand tuteur et le meilleur guide pour écrire du code C ++ élégant et beau.

user113896
la source