А что значит универсальный Клон?
ClonableBase -> ClonableHelper<Derived> -> Derived
Да вроде нет проблем, на вскидку.
можно, но для этого нужно CRTP
Прежде всего при создании клонов объектов нужно озадачиться В какой памяти Ты хочешь его создать. Видов памяти много, а функция Клон только одна, да И конструктор копирования тоже только один. И как поможет тут crtp- непонятно.
Клон с возможностью передать алллокатор..
А я хочу например в автоматической памяти создать, или ещё лучше в глобальной памяти потока? Как тут аллокатор поможет?
Ну так в автоматической навряд-ли ты тип не знаешь
И расскажи как тут поможет CRTP?
Ну типа сделать HelperBase от которого наследуешься и у тебя есть метод clone()
У CRTP в такой схеме одна проблема: если появилась необходимость отнаследоваться от клонируемого объекта, то вылезает ромбовидное.
виртуальное наследование и EBO
Ну вот да, а это уже неудобно зачастую.
Обсуждают сегодня