2015-09-29 3 views
1

Я знаю, что конструктор копирования всегда создается по умолчанию, даже если я его явно не создаю. То же самое верно для конструктора перемещения? Давайте предположим, что А имеет очень простой класс:Создан ли конструктор перемещения по умолчанию?

class SimpleClass 
{ 

public: 
    SimpleClass(int value) : 
      member(value) 
    {} 

    int member; 

}; 

ли мне явно нужно написать SimpleClass(SimpleClass &&other) default создать конструктор по умолчанию двигаться или нет?

+2

Посмотрите на [условия для автоматического генерации-по умолчанию-ctor-copy-ctor-и-default-присваивание] (http://stackoverflow.com/questions/4943958/conditions- for-automatic-generation-of-default-ctor-copy-ctor-and-default-assi) – Jarod42

+1

Остерегайтесь версий Visual Studio до 2015 года, они по умолчанию не создавали конструктор перемещения. –

ответ

1

Как и конструктор копирования, конструкция перемещения по умолчанию доступна. Проверьте справочный документ here

+3

За исключением того, что если вы объявите конструктор копирования, деструктор или оператор присваивания, операции перемещения не будут сгенерированы. – Melkon

Смежные вопросы