C++ Logo

std-proposals

Advanced search

Re: Ptr proposal: looking for feedback

From: Ville Voutilainen <ville.voutilainen_at_[hidden]>
Date: Fri, 17 Jul 2020 17:50:09 +0300
On Fri, 17 Jul 2020 at 17:40, Arthur O'Dwyer <arthur.j.odwyer_at_[hidden]> wrote:
> But if that were actually the only use-case, then we wouldn't need ptr<T> at all! There's already an idiomatic C++ way of doing that:
> void betterfunc(Foo& f);
> ... betterfunc(local); ... // no ownership
> ... betterfunc(*std::make_unique<Foo>(42)); // construct an owning unique_ptr, and then deallocate it afterward
> If the parameter `Foo& f` were const-qualified, we could even do this:
> ... betterfunc(Foo(42)); ... // construct a Foo and deallocate it afterward, without even using the heap!

..but if the parameter of betterfunc is supposed to be nullable, none
of that nonsense works.

> So if "func doesn't do anything ownership-wise," then we don't need `ptr<T>` at all.
> If `ptr<T>` has a use-case, it must involve doing something, ownership-wise.

That "doing something ownership-wise" happens outside of func, and
doesn't necessarily change func
in any way.

Received on 2020-07-17 09:53:37