web-dev-qa-db-ja.com

C ++のスタイルガイド

現在、C++コードで Google C++ Style Guide を使用しており、かなり満足しています。

最近、このガイドは非常に悪いと言われました。Googleの内部で使用され(私は知っていました)、古く、いくつかの非常に悪い慣行を促進しています。だから私は別のコーディングスタイルを使いたいです。

よく使われるC++スタイルのガイドにはどのようなものがありますか?私はgccとVisual Studioの両方のコードを記述し、C++ 11機能の多くを使用しています。

私が非常に気に入った Google C++スタイルガイド は、インデント、空白、および命名規則(特に、すべてのクラス、タイプ(typedef、タイプエイリアス、テンプレートエイリアスを含む)の頭文字が大文字)でした。

どんな答えも主観的であると私は知っています(このサイトでこれでいいと思います)。どんな意見でもいただければ幸いですが、最近どのガイドが使用されているかに興味があります。

30
bolov

この本のガイドラインを一般的な使用法に使用できます。

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

ハーブ・サッターとアンドレイ・アレクサンドルスクから。ただし、C++ 11は考慮されていませんが、新しいエディションがあると思います。

ただし、タブではなくスペースの数や、どのような難解な表記法を適用するかについては答えません。しかし、これらは最も重要なことではありません。ほとんどの場合、一貫性を保つためだけに鍵となります。

15
Nikko

C++コアガイドラインは、C++でのコーディングに関する実証済みのガイドライン、ルール、およびベストプラクティスのセットであり、ここで見つけることができます:- https://github.com/isocpp/CppCoreGuidelines

それらは、とりわけ Bjarne Stroustrup および Herb Sutter によって記述されています。

23

GoogleのC++スタイルガイドに対する批判(一部は正当化されることに同意します)は、Googleの命名規則やインデントスタイルに関するものではなく、他の規則やポリシーに関するものです。インデント/フォーマットと命名規則はどちらも好みの問題であり、無限のプログラマーの宗教戦争の肥沃な土台ですが、C++とは異なり、C#とは異なり、普遍的な標準はなく、本当に重要な唯一のガイドラインは一貫性です。新しいプロジェクトでは、好きな命名規則とインデントスタイルを選択し、それを一貫して使用します。既存のプロジェクトの場合は、すでに使用されている規則に固執します。 C++コーディング標準 のルール0は「小さなことを気にしないでください」です。ここでは、一貫性がある限り、命名規則とインデントスタイルはそれほど重要ではないと主張します。

私にとって大きな生産性のブースターは、インデント/ clang-format を使用したフォーマットを自動化しています。インデントとフォーマットのルールを決めたら、カスタマイズされた.clang-format構成ファイルをセットアップして、それを心配する必要がないようにすることを強くお勧めします:-)

Clang形式はスタンドアロンツールであり、clangをコンパイラとして使用する必要はありません。 Visual Studio用の公式プラグイン 利用可能 もあります。

8
mattnewport

@ user113896が以前に書いたように、Bjarne Strostrupは私たちに多くのスタイルガイダンスを与えました。彼のすばらしい業績の1つは JSF-C++コーディングスタイルブック です。注意してください、それは通常のc ++のためではなく、組み込みの使用のためですが、それは物事が明確で機能するためにどのように行われるべきかを示しています。もちろん、あなたはすべてを考慮する必要はありません-それは注文書ではなくガイドです:)。

6
baderman

Bjarne Stroustrupのプログラミングと原則をまだ読んでいない場合は、言語の作成者から多くを学ぶことができるので、読むことを強くお勧めします。私はC++の作者からたくさん見たり読んだりしてきましたが、彼はスタイルにこだわりがあり、常にデバッグしやすく読みやすい優れた美しいコードを書くように人々に言っていると言えます。私は彼が最高の家庭教師であり、スタイリッシュで美しいC++コードを書くための最高のガイドであると信じています。

2
user113896