определены деструктор, конструктор копирования или оператор копирования, то компилятор не предоставит, по умолчанию, конструктор перемещения или оператор перемещения. Если это так, то почему он этого не делает если все явно мною определенно?
Может явно определены?
В книге такая формулировка
Заскринь плз
Т.н. rule of five: Because the presence of a user-defined destructor, copy-constructor, or copy-assignment operator prevents implicit definition of the move constructor and the move assignment operator, any class for which move semantics are desirable, has to declare all five special member functions В книжке опечатка скорее всего
Оберните код в теги: 3 символа ` до и после кода (в случае одиночной конструкции достаточно 1 ` с обеих сторон). Спасибо!
Всё ещё неправильно :( Оберните код в теги: 3 символа ` до и после кода (в случае одиночной конструкции достаточно 1 ` с обеих сторон). Спасибо!
Спасибо, пазл сложился
Там же сказано(в книге), что отсутствие конструктора перемещения или оператора перемещения, предотвращает неявное создание конструктора копирования или оператора копирования. Здесь все так или также есть опечатка?
presence == присутствие, наличие
Я не про твой последний ответ, это другой вопрос по этой теме
Ты, кажется, повторяешь свой предыдущий вопрос... Или я запутался Мув конструктор и оператор не сгенерятся, если юзером определена хотя бы одна из трех спец функций... Если в книжке написано обратное, то это опечатка
Про правило пяти понял. Мое предпоследнее сообщение, немного о другом. Судя по идее из него, если нет ни одной из пяти функций, то для семантики копирования ничего неявно создаваться не будет
Если ни одну функцию не определять, то компилятор сгенерит конструктор и оператор копирования Если они используются
Спасибо за помощь
Обсуждают сегодня