В каких сценариях мне следует ожидать явной необходимости реализации конструктора перемещения и оператора присваивания перемещения?

Учитывая, что класс на самом деле является перемещаемым, ручная реализация конструктора перемещения и оператора присваивания перемещения для класса быстро становится утомительной.

Мне было интересно , когдаэто на самом деле тяжелая, тяжелая, преждевременная оптимизация?

Например, если класс имеет только тривиальные данные POD или члены, которые сами имеют конструктор перемещения и оператор присваивания, то я предполагаю, что компилятор либо просто оптимизирует дерьмо из партии (в случае POD) и в противном случае использовать конструктор перемещения элементов и оператор присваивания перемещения.

Но гарантируется ли это? В каких сценариях я должен ожидатьявной необходимости реализации конструктора перемещения и оператора присваивания перемещения?

РЕДАКТИРОВАТЬ: Как упоминалось ниже Николом Боласом в комментарии к его ответу на https://stackoverflow.com/a/9966105/6345, с бета-версией Visual Studio 11 (и ранее) Никакойконструктор перемещения или оператор присваивания перемещения никогдаавтоматически не генерируются. Ссылка: http://blogs.msdn.com/b/vcblog/archive/2011/09/12/10209291.aspx

16
задан Community 23 May 2017 в 12:01
поделиться