フリーソフト

« クラス | トップページ | その他のC++の機能 »

Google特有のマジック

このドキュメントは、Google C++ Style Guideを翻訳、要約したものです。省略した部分や意訳した部分が多くあります。原文の意図が伝わるよう注意しましたが、誤りが含まれているかもしれません。正確な情報については、必ず原文を参照してください。

前へ | 目次 | 次へ

Google特有のマジック

所有権とスマートポインタ

動的に割り当てられたオブジェクトのオーナーは単一かつ固定されていることが望ましい。所有権を転送する場合はスマートポインタを使用することが望ましい。

動的な割り当てをする場合は、それを割り当てたコードに所有権をキープしておくことが望ましい。他のコードがそのオブジェクトにアクセスする必要がある場合は、コピーを渡すか、所有権を転送することなくポインタか参照を渡すこと。あるいは、std::unique_ptrを使って明示的に所有権を転送することが望ましい。

特別な理由がない限り、所有権を共有するコードを書いてはならない。負荷の大きいコピー操作を避けるため。パフォーマンス上の利益が大きく、かつ内在するオブジェクトが変化しない場合のみ所有権を共有してもよい(例:std::shared_ptr

)。所有権を共有する場合は、std::shared_ptrを利用することが望ましい。

scoped_ptrは使用禁止(古いC++との互換が必要な場合を除く)。std::auto_ptrも使用禁止。代わりにstd::unique_ptrを使用すること。

cpplint

cpplint.pyでスタイルのエラーが検出できる。

http://google-styleguide.googlecode.com/svn/trunk/cpplint/cpplint.py

前へ | 目次 | 次へ

« クラス | トップページ | その他のC++の機能 »

技術文書」カテゴリの記事