У меня есть тип, который можно копировать, но может быть дорогостоящим для копирования. Я реализовал конструктор перемещения и переместил назначение. Но у меня проблемы с производительностью, когда люди забывают вызывать move() при передаче по значению.
Хорошо ли стиль С++ 11 удалить конструктор копирования и вместо этого предоставить явный метод copy() для редких случаев, когда действительно требуется копия? Это идиоматично на других языках (Ruby, JavaScript), но я ничего не знаю в стандартной библиотеке С++, которая запрещает копирование исключительно для производительности. Например, std::vector < > является скопируемым, тогда как std:: unique_ptr < > и std:: thread не могут быть скопированы по другим причинам.