Cpp Memo

「Cpp Memo」の編集履歴(バックアップ)一覧はこちら

Cpp Memo」(2007/06/30 (土) 14:23:36) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

C++に関する話題を自分用にメモ。 コーディング基準(整理後、別ページにする予定。) 基本ルール - クラス名/メソッド名/関数名/変数名は略さない。(適切な名称で。) - インデントはスペース4文字。(タブは使用しない。) - Javaスタイル ファイル名は、「.cpp/.h」とする。 基本的に1クラス=1ファイルとする。 main関数は1ファイルとし、ファイル名の末尾はMain.cppとする。 変数の宣言は1行1変数とする。カンマで区切って複数宣言しない。 演算子やカンマ、イコールの前後は空白を入れる。 int value = 1 + 2; コメントは基本的に上に記述。 // OK int value = 1 + 2; 行の末尾に付与するコメントは禁止。 int value = 1 + 2; // NG クラスやメソッドのコメントはdoxygen形式で。 /** * 関数の説明 * @param a 引数A * @param b 引数B * @return 戻り値 */ int execute(int a, int b) { // ... } /* */形式のコメントは、ファイル先頭のコピーライト程度に使用するのみで、 基本的に使用しない。 処理をコメントアウトする場合には、行頭に//を加える。 // int execute(int a, int b) { // // ... // } 関数でも { の位置は行末で。 int execute(int a, int b) { // ... } if,for,whileでは1行の処理でも必ず{}を付ける。 if文 // if/else全体についてのコメント if (condition1) { // condition1で実行する処理についてのコメント 処理 } else if (condition2) ( // condition2で実行する処理についてのコメント 処理 } else { // elseで実行する処理についてのコメント 処理 } for文 for (int i = 0; i < size; i++) { // ... } while文 while (boolValue) { // ... } switch文 case ...:で必ず改行する。 // switch文全体に関するコメント switch (value) { case CASE_A: // CASE_Aで処理する内容のコメント break; case CASE_B: // CASE_Bで処理する内容のコメント break; case CASE_C: // breakしない場合、「FALLTHROUGH」の記述は必須。 // FALLTHROUGH case CASE_D: // CASE_C, CASE_Dで処理する内容のコメント break; default: break; } class Foo { private: // メンバ変数は先頭に「m_」を付与する。 int m_value; protected: // ... public: // ... }; グローバル変数には先頭に「g_」を付与する。 (ただしグローバル変数は基本的に使用しないこと。) ポインタには末尾に「_p」を付与する。 (ただし文字列(char*)なんかは、_pをつけなくてもよい。) 例外は、std::exceptionを継承したクラスを作成する。 末尾はExceptionとする。 try { } catch (XxxException& eXxx) { } using句は、クラス単位で。「using namespace xxx;」とはしない。 using std::cout; using std::endl; ヘッダファイル形式 #ifndef NAMESPACE_CLASS_NAME_H #define NAMESPACE_CLASS_NAME_H #endif long型は使用しない。int64_tやint32_tを使用する。 (boost/cstdint.hpp) オブジェクト倶楽部コーディング規約の会 [[http://www.objectclub.jp/community/codingstandard/]] g++の場合「-Wall」は必須。 valgrind autotools STL,boost,Log4cxx,ICU,ACE,CppUnitについて。 *[[Log4cxx>http://logging.apache.org/log4cxx/]] 現在の安定バージョンである0.9.7は、ログの時刻がGMTで出力されるなど使い勝手がよくない。 で、いろいろ調べてみてみると、もう0.10.0が準備されている模様。 参考になるページ [[http://www.jajakarta.org/kvasir/bbs/technical/1295?msg=2#msg4759>http://www.jajakarta.org/kvasir/bbs/technical/1295?msg=2#msg4759]] *CppUnit cocuppa,coumaについて
C++に関する話題を自分用にメモ。 コーディング基準(整理後、別ページにする予定。) 基本ルール - クラス名/メソッド名/関数名/変数名は略さない。(適切な名称で。) - インデントはスペース4文字。(タブは使用しない。) - Javaスタイル ファイル名は、「.cpp/.h」とする。 基本的に1クラス=1ファイルとする。 main関数は1ファイルとし、ファイル名の末尾はMain.cppとする。 変数の宣言は1行1変数とする。カンマで区切って複数宣言しない。 演算子やカンマ、イコールの前後は空白を入れる。 int value = 1 + 2; コメントは基本的に上に記述。 // OK int value = 1 + 2; 行の末尾に付与するコメントは禁止。 int value = 1 + 2; // NG クラスやメソッドのコメントはdoxygen形式で。 /** * 関数の説明 * @param a 引数A * @param b 引数B * @return 戻り値 */ int execute(int a, int b) { // ... } /* */形式のコメントは、ファイル先頭のコピーライト程度に使用するのみで、 基本的に使用しない。 処理をコメントアウトする場合には、行頭に//を加える。 // int execute(int a, int b) { // // ... // } 関数でも { の位置は行末で。 int execute(int a, int b) { // ... } if,for,whileでは1行の処理でも必ず{}を付ける。 if文 // if/else全体についてのコメント if (condition1) { // condition1で実行する処理についてのコメント 処理 } else if (condition2) ( // condition2で実行する処理についてのコメント 処理 } else { // elseで実行する処理についてのコメント 処理 } for文 for (int i = 0; i < size; i++) { // ... } while文 while (boolValue) { // ... } switch文 case ...:で必ず改行する。 // switch文全体に関するコメント switch (value) { case CASE_A: // CASE_Aで処理する内容のコメント break; case CASE_B: // CASE_Bで処理する内容のコメント break; case CASE_C: // breakしない場合、「FALLTHROUGH」の記述は必須。 // FALLTHROUGH case CASE_D: // CASE_C, CASE_Dで処理する内容のコメント break; default: break; } class Foo { private: // メンバ変数は先頭に「m_」を付与する。 int m_value; protected: // ... public: // ... }; グローバル変数には先頭に「g_」を付与する。 (ただしグローバル変数は基本的に使用しないこと。) ポインタには末尾に「_p」を付与する。 (ただし文字列(char*)なんかは、_pをつけなくてもよい。) 例外は、std::exceptionを継承したクラスを作成する。 末尾はExceptionとする。 try { } catch (XxxException& eXxx) { } using句は、クラス単位で。「using namespace xxx;」とはしない。 using std::cout; using std::endl; ヘッダファイル形式 #ifndef NAMESPACE_CLASS_NAME_H #define NAMESPACE_CLASS_NAME_H #endif long型は使用しない。int64_tやint32_tを使用する。 (boost/cstdint.hpp) わかりやすいコードを作成するための6つの方法 [[http://www-06.ibm.com/jp/developerworks/linux/library/l-clear-code/index.shtml]] オブジェクト倶楽部コーディング規約の会 [[http://www.objectclub.jp/community/codingstandard/]] g++の場合「-Wall」は必須。 valgrind autotools STL,boost,Log4cxx,ICU,ACE,CppUnitについて。 *[[Log4cxx>http://logging.apache.org/log4cxx/]] 現在の安定バージョンである0.9.7は、ログの時刻がGMTで出力されるなど使い勝手がよくない。 で、いろいろ調べてみてみると、もう0.10.0が準備されている模様。 参考になるページ [[http://www.jajakarta.org/kvasir/bbs/technical/1295?msg=2#msg4759>http://www.jajakarta.org/kvasir/bbs/technical/1295?msg=2#msg4759]] *CppUnit cocuppa,coumaについて

表示オプション

横に並べて表示:
変化行の前後のみ表示:
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。