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: ちゃんと考える。
コピーコンストラクター
----------------------
-基本的にコピーコンストラクターの使用を禁止する。
+基本的にコピーコンストラクターの使用を禁止する。よほどのことがなければ使用しないこと。
+
+コピーコンストラクターは暗黙的に無駄なコピーが発生する可能性があるためパフォーマンス上の問題がある。コピーではなくポインターやリファレンスを用いること。
+
+また、デフォルトのコピーコンストラクター実装はメンバー変数のポインターの値をそのままコピーするため、デコンストラクターで二重に解放してしまう危険性がある。そのため、明示的にコピーコンストラクターを定義しない場合は無効にする。
よい例: