C++ Logo

std-discussion

Advanced search

Re: std::make_shared and type deduction

From: Hans Åberg <haberg-1_at_[hidden]>
Date: Fri, 10 Jul 2020 18:25:56 +0200
> On 10 Jul 2020, at 15:31, Kyle Knoepfel via Std-Discussion <std-discussion_at_[hidden]> wrote:
>
>> I wasn't. I was pointing out that you're creating a new object. So maybe what
>> you want is clone_unique() and clone_shared() with perfect forwarding.
>
> Yes, well done--clone_unique() and clone_shared() are good names. Question is would such facilities have enough interest to justify a proposal? I'm kind of doubtful....

One can have polymorphic copy and move operators, by adding to every class A:
  virtual A* new_p() const& { return new A(*this); }
  virtual A* new_p() && { return new A(std::move(*this)); }

Perhaps the latter would do your job.

Received on 2020-07-10 11:29:14