Date: Sat, 8 Jun 2024 16:26:45 +0000
std::elide isn't special. Any user could write it. Any user could write a special case of it. Any user can write a conversion operator.
If there are classes broken for std::elide they're broken for all those types as well.
Even if unconstrained unary constructors aren't broken in general the ones that plausibly interact with std::elide (and all the types in the categories I mentioned above) are.
If they weren't we wouldn't be having this conversation.
--Robert
On Jun 8, 2024 11:46, Frederick Virchanza Gotham via Std-Proposals <std-proposals_at_[hidden]> wrote:
On Saturday, June 8, 2024, Robert A.H. Leahy wrote:
Classes with unconstrained unary constructors are just broken, as you've discovered.
So then should we write a paper to deprecate unary unconstrained constructors in C++26?
I don't think there's anything wrong with unary unconstrained constructors. I see how they're inconvenient for 'std::elide', but doesn't make them inherently broken.
If there are classes broken for std::elide they're broken for all those types as well.
Even if unconstrained unary constructors aren't broken in general the ones that plausibly interact with std::elide (and all the types in the categories I mentioned above) are.
If they weren't we wouldn't be having this conversation.
--Robert
On Jun 8, 2024 11:46, Frederick Virchanza Gotham via Std-Proposals <std-proposals_at_[hidden]> wrote:
On Saturday, June 8, 2024, Robert A.H. Leahy wrote:
Classes with unconstrained unary constructors are just broken, as you've discovered.
So then should we write a paper to deprecate unary unconstrained constructors in C++26?
I don't think there's anything wrong with unary unconstrained constructors. I see how they're inconvenient for 'std::elide', but doesn't make them inherently broken.
Received on 2024-06-08 16:26:51