Date: Fri, 10 Jul 2020 19:27:36 +0300
On Fri, 10 Jul 2020 at 19:26, Hans Ã…berg via Std-Discussion
<std-discussion_at_[hidden]> wrote:
>
>
> > 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.
There are things like
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0201r5.html
that don't require that.
<std-discussion_at_[hidden]> wrote:
>
>
> > 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.
There are things like
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0201r5.html
that don't require that.
Received on 2020-07-10 11:31:03