Google C++コードガイド翻訳簡略版(google c+code style guide)【7】


Googleプログラミング規範の現地化、簡略化.必要があれば、Google C++code style guide原文を参照してください.http://google.github.io/styleguide/cppguide.html
本文書はインターネット上に伝わっているGoogle C++ に基づいて、edisonpeng(2009/3/25)によって整理されている.
現地化の簡略化はMISAS開発チームによって使用される.ここで共有して各開発チームの参考にします.
目次
  • ディレクトリ
  • フォーマット
  • 行の長さ
  • ASCII文字ではない
  • スペースorタブTab
  • 関数宣言と定義
  • 関数呼び出し
  • 条件文
  • サイクルとスイッチ選択文(loop and switch)
  • ポインタと参照式
  • ブール表現
  • 戻り値
  • 初期化動作
  • 前処理
  • 種類のフォーマット
  • 初期化リスト
  • 名前空間フォーマット
  • 水平ブランク
  • 垂直ブランク
  • 規則の例外
  • 既存の不統一コード
  • Windowsコード
  • チーム協力
  • 書式設定
    MISAS開発チームのC++開発規定、1つのTab=4つのスペース
    行の長さ
    各行の文字数は80を超えません.
    この本には例外があります.
    (1)1行のコメントに80文字以上のコマンドやURLが含まれている場合、コピー&ペーストが便利で80文字を超えることができます.
    (2)長いパスを含むものは80列を超えることができ、できるだけ避ける.
    (3)ヘッダファイルの保護はこの原則を無視することができる.
    ASCII文字以外
    ASCII文字はなるべく使わないで、UTF-8フォーマットを使わなければなりません.
    スペースorタブTab
    Tabのみを使用して、Tabの長さを4つのスペースとして約束します.
    関数宣言と定義
    戻るタイプと関数名は同じ行にあり、パラメータも同じ行にあります.
    1行のテキストが多いと、すべてのパラメータを書き込めない場合、パラメータは改行Tabで配置されます.
    ReturnType LongClassName::ReallyReallyReallyLongFunctionName(
        Type par_name1,
        Type par_name2,
        Type par_name3) 
    {
        DoSomething(); // 2 space indent
        ...
    }
    注意:(1)戻り値と関数は同じ行にあります.
    (2)左括弧(は、常に関数名と同じ行にある.
    (3)関数名と左括弧の間にはスペースがありません.
    (4)丸括弧とパラメータにはスペースがありません.
    (5)関数の左括弧の他の行に、単独で行を置く
    (6)関数の右括弧は、関数の最後に、単独で1行に配置されます.
    (7)右括弧と左括弧の間で改行
    (8)関数宣言と実装におけるすべての参照名は一致していなければならない.
    (9)すべての形をできるだけ揃える
    (10)デフォルトのインデントは1つのTab、すなわち4つのスペースです.
    (11)個別パッケージのパラメータは、4つのスペースのインデントを維持します.
    const関数とキーワードconstと最後のパラメータを同じ行に設定します.
    ReturnType LongClassName::ReallyReallyReallyLongFunctionName(
        Type par_name1,
        Type par_name2,
        Type par_name3) const
    {
        DoSomething(); // 2 space indent
        ...
    }
    
    使用できないパラメータは関数のコメントで説明する必要があります.
    関数の呼び出し
    なるべく同じ行にします.かっこ内のパラメータを改行して揃えます.
    条件文
    条件文の左括弧は条件文の行数、書式は関数と区別されます.
    注意:条件の中には一行の語句があっても、全部の括弧を書いて、後続の維持に便利です.
    いくつかの条件付きステートメントは、1行で読み取り可能性を高めることができます.簡単な文であり、elseサブフレーズがない場合にのみ使用できます.
    if (x == kFoo) return new Foo();
    if (x == kBar) return new Bar();
    注意:else子文がある場合は、括弧を持たないことを禁止します.
    ループとスイッチ選択文(loop and switch)
    switch文は大かっこでブロック分けします.
    switch文はdefaultが存在する必要があります.正常に実行されない場合は異常ログまたはコンソール情報で処理します.
    空きサイクルは{}またはcontinueを使って、サイクルは一つのセミコロンだけでいいです.
    ポインタと参照式
    句点(.)、矢印(->)の前後にスペースがないようにしてください.
    value = *test;
    value = &test;
    value = c.test;
    value = c->test;
    
    char *cinput;
    const string &str_name;
    ブール式
    論理演算子は、標準行の幅(80文字)を超えた場合、行を断行し、行末に置く必要があります.
    if (this_one_thing > this_other_thing   &&
        a_third_thing == a_fourth_thing     &&
        yet_another & last_one) {
        ...
    }
    複数の論理演算子がある場合、丸括弧()を使用して演算優先度を提示することを考慮する.
    戻り値
    関数が返される(すなわち:return表式)の場合は、括弧を使わないでください.
    初期化操作
    等号(=)を使って完成します.
    前処理
    字下げしないで、行頭から始めてください.コードブロックに適時にインデントしても、行頭から開始します.
    クラスの書式
    クラスの書式は、本規範の第三章の声明手順の章節を参照してください.
    初期化リスト
    初期化リストを同じ行に置くか、または改行Tabを補完します.
    名前空間のフォーマット
    名前空間の内容はインデントされません.
    水平ブランク
    行末は無意味な空白を増やさないでください.行末にコメントがある場合はTabを補完する必要があります.
    垂直方向の空白
    垂直方向の空白はできるだけ少ないです.関数間、モジュール間に同じ空白を残します.
    規則の例外
    前に述べた符号化習慣は基本的に強制的ですが、優れた規則は例外的に許可されます.
    既存の不統一コード
    既存の成熟した工事は既定の規範に適合していないので、ネットで一面を開くことができ、2018年から自主的に開発した工事はその後徐々に修正される.
    Windowsコード
    Windowsプラットフォームの開発には、システムAPIは変更できない以外に、自主的な開発内容は本規則に従う必要があります.
    チーム?ワーク
    チームスタイルの整合性、コードの読み取り可能性が高い.