Сообщение Re[5]: Доступ к copy-ctor через отдельный метод от 02.04.2022 17:24
Изменено 02.04.2022 18:11 rg45
Re[5]: Доступ к copy-ctor через отдельный метод
Здравствуйте, _hum_, Вы писали:
__>ну, хотелось бы полностью запретить неявные вызовы всех конструкторов, включая конструкторы перемещения.
Конструктор перемещения тоже можно сделать закрытым и это не помешает методу clone работать так, как задумано. Это благодаря наличию Mandatory copy/move elision, о котором я уже упоминал в посте рядом.
http://coliru.stacked-crooked.com/a/65cde38126b17c3
Фактически метод clone в этих условиях превращается в абсолютно прозраную прокладку для конструктора копирования. Ровно того же эффекта можно было бы добиться, просто объявив конструкторы копировния и перемещения explicit и оставив их открытыми.
__>ну, хотелось бы полностью запретить неявные вызовы всех конструкторов, включая конструкторы перемещения.
Конструктор перемещения тоже можно сделать закрытым и это не помешает методу clone работать так, как задумано. Это благодаря наличию Mandatory copy/move elision, о котором я уже упоминал в посте рядом.
http://coliru.stacked-crooked.com/a/65cde38126b17c3
Код примера | |
| |
Фактически метод clone в этих условиях превращается в абсолютно прозраную прокладку для конструктора копирования. Ровно того же эффекта можно было бы добиться, просто объявив конструкторы копировния и перемещения explicit и оставив их открытыми.
Re[5]: Доступ к copy-ctor через отдельный метод
Здравствуйте, _hum_, Вы писали:
__>ну, хотелось бы полностью запретить неявные вызовы всех конструкторов, включая конструкторы перемещения.
Конструктор перемещения тоже можно сделать закрытым и это не помешает методу clone работать так, как задумано. Это благодаря наличию Mandatory copy/move elision.
http://coliru.stacked-crooked.com/a/65cde38126b17c3
Фактически метод clone в этих условиях превращается в абсолютно прозраную прокладку для конструктора копирования. Ровно того же эффекта можно было бы добиться, просто объявив конструкторы копировния и перемещения explicit и оставив их открытыми.
__>ну, хотелось бы полностью запретить неявные вызовы всех конструкторов, включая конструкторы перемещения.
Конструктор перемещения тоже можно сделать закрытым и это не помешает методу clone работать так, как задумано. Это благодаря наличию Mandatory copy/move elision.
http://coliru.stacked-crooked.com/a/65cde38126b17c3
Код примера | |
| |
Фактически метод clone в этих условиях превращается в абсолютно прозраную прокладку для конструктора копирования. Ровно того же эффекта можно было бы добиться, просто объявив конструкторы копировния и перемещения explicit и оставив их открытыми.