私が使用しますstd::map<int, A>
Aはクラスなのでシャローコピーを防がなければならないのですが、 みたいなクラスが多いAので、ディープコピーの構文や演算子を作るのは面倒です。コピーコンストラクタとコピー代入演算子は使わなくてもいいようなので使わないことにします。
ミスを防ぐために、private コピーコンストラクタとコピー代入演算子を持つ UnCopyable クラスを作成し、A継承しました。
ただし、問題が 1 つあります。std::mapコピー コンストラクターを使用します。
Aのポインターをマップに保存したくありません。
より良い解決策は何ですか?