C++ Logo

std-proposals

Advanced search

Re: [std-proposals] Dummy value protocol

From: Ville Voutilainen <ville.voutilainen_at_[hidden]>
Date: Sat, 7 Jun 2025 21:57:16 +0300
On Sat, 7 Jun 2025 at 21:44, Robin Savonen Söderholm via Std-Proposals
<std-proposals_at_[hidden]> wrote:
>
> You can easily implement your own version of optional that does exactly that (it would even be a simpler class to implement, although not to use). The question then is why? If you somehow think that you would gain performance out of it, then my suggestion is: implement this type of optional and show both a benchmark where it makes a significant difference and tell us the use case where this performance gain can be leveraged.
>
> My 2 c.

That's easy. The hard part is figuring out how to deploy such a type
with the same name as its previous version that didn't use
the dummy value protocol. It's a behavioral ABI break without any
layout ABI break.

> P.S. you may already "pay" for a branch in the case of std::string and the like due to SSO, I'm sure the compiler can do something smart with the extra branch in optional for both move and destruction.

Those branches are completely unrelated, so the compiler can't do
anything there.

Received on 2025-06-07 18:57:30