std ライブラリが代わりにこれらを使用しないのはなぜですか? 現在、コピー不可能なオブジェクトでコピー コンストラクターが呼び出された場合、エラー メッセージは少し「不可解」であるか、これまで遭遇したことがない人にとっては混乱を招く可能性があります。
初めてこのエラーメッセージが表示されたとき、クラスを調べて「コピー不可」を確認し、最終的に理解するまで、何が問題なのかわかりませんでした (アクセスできない ctors のアイデアは考えたこともありませんでした)。
copy-ctor を非公開にするメリットは何ですか? ctor オーバーロードの VS Intellisense では引き続き表示されます。
なぜ彼らは単に次のことを選択しなかったのですか:
public:
someClass(const someClass&) { static_assert(false, "someClass is of non-copyable type. calls to copy constructor are disallowed."); }
コードをコンパイルしようとすると、このエラー メッセージが表示され、エラーの理由がより明確に示されます。(const someClass&) と比較するとアクセスできません。テンプレートを多用すると、これを理解するのがどれほど難しいか想像してみてください。
では、プライベート copy-ctor と static_assert にはどのような利点があるのでしょうか?