Учитывая, что класс на самом деле является подвижным, вручную реализуя конструктор перемещения и переместить оператор присваивания для класса, быстро становится утомительным.
Мне было интересно, когда , когда это действительно тяжелая, тяжелая, преждевременная оптимизация?
Например, если у класса есть только тривиальные данные POD или члены, которые сами имеют конструктор перемещения и оператор назначения перемещения, определенные, то я предполагаю, что компилятор либо просто оптимизирует дерьмо из партии (в случае POD) и в противном случае использовать конструктор перемещения элементов и переместить оператор присваивания.
Но это гарантировано? В каких сценариях я должен ожидать явно реализовать конструктор перемещения и переместить оператор присваивания?
EDIT: Как упоминалось ниже Николь Болас в комментарии к его ответу на qaru.site/info/346773/... с помощью Visual Studio 11 Beta (и before) no перемещать конструктор или оператор присваивания оператора всегда автоматически генерируется. Ссылка: http://blogs.msdn.com/b/vcblog/archive/2011/09/12/10209291.aspx