同僚と私は、const メンバーまたは参照メンバーが正しいことであるかどうかについて議論しています。const および reference メンバーは、参照または const メンバーを無視する独自のコピーおよび移動演算子を記述しない限り、クラスをコピー不可および移動不可にします。特定のメンバーが参照または const であるという理由だけで、特定のメンバーのコピーまたは移動を無視することが理にかなっているケースが見つかりません。
移動できないオブジェクトを持つことは、論理的に健全であることはほとんどなく、クラスが位置不変であるかどうかにのみ関係する選択だと思います。コピー不可能なオブジェクトははるかに一般的ですが、クラスをコピー不可能にするという選択は、それが論理的にコピー不可能なリソースを保持しているかどうか、それが唯一の所有権を表しているかどうかなどに関係しています。参照または const メンバーを持つかどうかは、クラスがこれらの特性 (コピー不可または移動不可) のいずれかを持つ必要があることを意味します。
それらを使用する必要がありますか? どちらか一方が必要ですか?例は何ですか?