クラスをコピー不可にすると、コードの品質が大幅に向上することがわかりました。最初はboost::noncopyableでこれを行いましたが、VC++コンパイラエラーはプライベートメンバーほど役に立たないことがわかりました(ダブルクリックするとコード内の間違った場所につながります)。
T(T const&);
T& operator=(T const&);
確かに、クラスが参照として渡されるべき場所に渡されなかったというかなりの数のケースを私に警告しました。そのため、コンストラクトを一度だけコピーする必要があるクラスでも警告を受け取りたいと思っています。
これを行う良い方法はありますか?たとえば、上記の 2 つのメソッドをプライベートのままにして、本当にコンストラクトをコピーしたいときに呼び出すパブリック T(T const&,bool dummy) コンストラクターを追加することを考えていました。または、上記の 2 つのメソッドを公開し、コピーの作成時に何らかの方法でコンパイラの警告をアクティブにして、必要な場所で警告を抑制します。
それとも、もっと良い方法がありますか?