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@lists.isocpp.org> 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.