Почему деструктор отключает генерацию неявных методов перемещения? ⇐ C++
Почему деструктор отключает генерацию неявных методов перемещения?
Читая этот блог, я пытался понять, что говорит правило нуля. ИМХО, там говорится, что если вы объявите свой собственный деструктор, не забудьте сделать конструктор перемещения и назначение перемещения по умолчанию.
Пример:
виджет класса { публика: ~Виджет(); // временный деструктор ... // нет функций копирования и перемещения }; "Добавление деструктора имеет побочный эффект, заключающийся в отключении генерации функций перемещения, но поскольку Виджет копируем, все код, который раньше генерировал ходы, теперь будет генерировать копии. В другими словами, добавление деструктора в класс привело к предположительно эффективные ходы, которые следует молча заменить на предположительно менее эффективные копии".
Приведенный выше текст Скотта Мейерса в кавычках вызывает у меня некоторые вопросы:
[*]Почему объявление деструктора скрывает семантику перемещения? [*]Объявление/определение деструктора скрывает только семантику перемещения или копирования присвоение конструктора и копирования также скрывает семантику перемещения?
Читая этот блог, я пытался понять, что говорит правило нуля. ИМХО, там говорится, что если вы объявите свой собственный деструктор, не забудьте сделать конструктор перемещения и назначение перемещения по умолчанию.
Пример:
виджет класса { публика: ~Виджет(); // временный деструктор ... // нет функций копирования и перемещения }; "Добавление деструктора имеет побочный эффект, заключающийся в отключении генерации функций перемещения, но поскольку Виджет копируем, все код, который раньше генерировал ходы, теперь будет генерировать копии. В другими словами, добавление деструктора в класс привело к предположительно эффективные ходы, которые следует молча заменить на предположительно менее эффективные копии".
Приведенный выше текст Скотта Мейерса в кавычках вызывает у меня некоторые вопросы:
[*]Почему объявление деструктора скрывает семантику перемещения? [*]Объявление/определение деструктора скрывает только семантику перемещения или копирования присвоение конструктора и копирования также скрывает семантику перемещения?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Почему явное объявление одной из специальных функций отключает генерацию других [дублировать]
Anonymous » » в форуме C++ - 0 Ответы
- 6 Просмотры
-
Последнее сообщение Anonymous
-
-
-
VSCODE SSH -соединение с root пользователь отключает через 20 секунд и отключает SSH
Anonymous » » в форуме Linux - 0 Ответы
- 27 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Единый способ вызова функции-члена как из явных, так и из неявных функций-членов объекта.
Anonymous » » в форуме C++ - 0 Ответы
- 32 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Единый способ вызова функции-члена как из явных, так и из неявных функций-членов объекта.
Anonymous » » в форуме C++ - 0 Ответы
- 26 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Единый способ вызова функции-члена как из явных, так и из неявных функций-членов объекта.
Anonymous » » в форуме C++ - 0 Ответы
- 26 Просмотры
-
Последнее сообщение Anonymous
-