[Groonga-mysql-commit] mroonga/mroonga [master] doc coding-style: add reasons about disabling copy constructor

Back to archive index

null+****@clear***** null+****@clear*****
2012年 3月 15日 (木) 17:51:24 JST


Kouhei Sutou	2012-03-15 17:51:24 +0900 (Thu, 15 Mar 2012)

  New Revision: 52db33db18dddefc52a3c8037e2da75b023c18bb

  Log:
    doc coding-style: add reasons about disabling copy constructor

  Modified files:
    doc/source/developer/coding_style.rst

  Modified: doc/source/developer/coding_style.rst (+5 -1)
===================================================================
--- doc/source/developer/coding_style.rst    2012-03-15 17:46:52 +0900 (9004cee)
+++ doc/source/developer/coding_style.rst    2012-03-15 17:51:24 +0900 (db8529d)
@@ -267,7 +267,11 @@ TODO: ちゃんと考える。
 コピーコンストラクター
 ----------------------
 
-基本的にコピーコンストラクターの使用を禁止する。
+基本的にコピーコンストラクターの使用を禁止する。よほどのことがなければ使用しないこと。
+
+コピーコンストラクターは暗黙的に無駄なコピーが発生する可能性があるためパフォーマンス上の問題がある。コピーではなくポインターやリファレンスを用いること。
+
+また、デフォルトのコピーコンストラクター実装はメンバー変数のポインターの値をそのままコピーするため、デコンストラクターで二重に解放してしまう危険性がある。そのため、明示的にコピーコンストラクターを定義しない場合は無効にする。
 
 よい例:
 




Groonga-mysql-commit メーリングリストの案内
Back to archive index