それぞれ型側に近づけて記述する
const T* const value
const T& value
const T^ value
const T% value
※ const は前置してください
タブで、そのタブは 4 の幅とする
かっこの内側に必ずスペースを入れる
func( value );
ただし、引数 0 の場合はスペースは不要
func();
かっこの内側にスペースを入れない
基本的に先頭を揃える
{
func();
}
ただし、中身がからの場合、1 つのスペースを入れて同一行に記述する。
{ }
include、using、関数、などで 1 つの改行を含める (このとき 2 行以上に改行は入れない)。 意味のまとまりで構文に改行をいれることも可。
任意の位置にブロック化できる。
for( size_t i = 0u; i < 4; ++i )
{
if( i == 1 )
{
func();
}
}
原則、1 行に収める。
func( a, b );
しかし、FWXGA フルスクリーンで収まりきらないものは原則改行を行う。
func(
a,
b );
既定の動作をする場合、以下のように記述する。
class sample
{
public:
sample() = default;
};
動作を変更する場合、次のように記述する。
class sample
{
public:
sample( const int a, const int b )
: a_( a )
, b_( b )
{ }
private:
int a_, b_;
};
WinRT オブジェクトにおいて、メソッド(C++ ではメンバー関数)、プロパティーはパスカルケースを用いる。フィールド(C++ ではメンバー変数)は原則キャメルケース、末尾にアンダーバー () だが、プロパティーに対応するフィールドはパスカルケースに末尾アンダーバー () とする。また、メンバー関数の仮変数は、キャメルケースを用いる。
ref class Sample
{
public:
void Func( int64 sampleValue );
public:
property int32 A
{
int32 get() { return A_; }
void set( int32 value ) { A_ = value; }
}
property int32 B
{
int32 get() { return B_; }
void set( int32 value ) { B_ = value; }
}
private:
int32 A_, B_;
};
なお、内部におけるローカル変数、非 WinRT オブジェクト(クラス、構造体、共用体)はスネークケースを用いる(基本 STL 準拠)。また、上から順番にメソッド、イベント、プロパティー、フィールドの順番に並べる。
Visual Studio の C/C++ の書式設定について記述します
- □ 中かっこのインデント
- かっこ内で、入力した新しい行を揃える
- ● 新しい行をインデント
- □ 既存のコードで、かっこ内で改行を揃える設定を使用する
- ☑ case の内容をインデントする
- □ case ラベルをインデントする
- goto ラベルの位置
- ● 左に 1 インデント
- □ アクセス指定子のインデント
- 初めのかっこの位置
- 名前空間の始めかっこの位置
- ● 自動再配置しない
- 型、関数、コントロール ブロック、ラムダの始めかっこの位置
- ● 新しい行へ移動
- 名前空間の始めかっこの位置
- 終わりかっこの位置
- ☑ 型が空の場合は、終わりかっこを始めかっこと同じ行に移動します
- ☑ 関数の本体が空の場合は、終わりかっこを始めかっこと同じ行に移動します
- キーワードの位置
- ☑ 新しい行に 'else' を配置する
- ☑ 新しい行に 'catch' および類似キーワードを配置する
- □ 'while' を新しい行の do-while ループに配置する
- 関数のかっこのスペース
- □ 引数リストの関数名と始めかっこの間にスペースを挿入する
- ☑ 引数リストのかっこ内にスペースを挿入する
- □ 引数リストが空の場合に、かっこ間にスペースを挿入する
- コントロール ブロックのスペース
- □ 制御フロー ステートメントないのキーワードと始めかっこの間にスペースを挿入する
- ☑ コントロール ステートメントのかっこ内にスペースを挿入する
- ラムダのスペース
- □ ラムダ引数リストの始めかっこの前にスペースを挿入する
- C スタイル キャストのスペース
- □ C スタイル キャストのかっこ内にスペースを挿入する
- □ C スタイル キャストの終わりかっこの後にスペースを挿入する
- 式のスペース
- ☑ かっこで囲んだ式のかっこ内にスペースを挿入する
- かっこのスペース
- ☑ 空のかっこの間にスペースを挿入する
- □ 均一初期化および初期化子リストの始めかっこの前にスペースを挿入する
- ☑ 均一初期化および初期化子リストのかっこ内にスペースを挿入する
- 大かっこのスペース
- □ 始め角かっこの前にスペースを挿入する
- □ 角かっこ内にスペースを挿入する
- □ 空の角かっこの前にスペースを挿入する
- □ 空の角かっこの間にスペースを挿入する
- ☑ 多次元配列の角かっこを一緒にグループ化
- □ ラムダの角かっこ内にスペースを挿入する
- □ ラムダの空の角かっこの間にスペースを挿入する
- 区切り記号のスペース
- □ コンマの前にスペースを挿入する
- ☑ コンマの後にスペースを追加する
- ☑ メンバー演算子の前後のスペースを削除する
- □ 型宣言で、基本のコロンの前にスペースを挿入する
- □ コンストラクターのコロンの前にスペースを追加する
- ☑ セミコロンの前のスペースを削除する
- ☑ セミコロンの後にスペースを追加する
- 演算子のスペース
- ☑ 単項演算子とそのオペランドの間のスペースを削除する
- バイナリ、代入、条件演算子
- ● バイナリ、代入、条件演算子の前後にスペースを挿入する
- ブロックの折り返しオプション
- ● 1 行のコード ブロックを折り返さない