Конструктор по умолчанию класса test
удален из-за невозможности копирования (graph_
) члена (если вы все еще можете копировать любым осмысленным способом, например, путем создания глубокая копия члена графа, которую вы должны реализовать в своем собственном конструкторе копирования).Напротив, конструктор move по умолчанию все еще существует (std::unique_ptr
является подвижным).Итак, что вы можете сделать, это следующее:
test t1;
auto t2 = std::move(t1);
Имейте в виду, что t1
, тогда не будет больше удерживать какой-либо объект (вы переместил объект, поэтому вы переместили его содержимое в другой объект), и объект, ранее удерживаемый t2
, был уничтожен.Если это значимое состояние, решать вам ...
Примечание: то, что я написал о конструкторах копирования и перемещения, применимо и к назначению копирования и перемещения ...