No.

This class should not be special cased in the core language. 

Old, broken classes aren't worth trying to save in this manner. Just modify, reimplement, or wrap them. 

--Robert 

On Jun 4, 2024 16:47, Frederick Virchanza Gotham via Std-Proposals <std-proposals@lists.isocpp.org> wrote:
On Tue, Jun 4, 2024 at 7:32 PM Lénárd Szolnoki wrote:
>
> std::optional has a single argument constructor that
> shouldn't be constrained away for std::elide. In fact
> std::elide is similarly useful to this constructor than
> to emplace.


Should there be two forms of "std::elide"? One with failure, on without failure?

    std::elide -- fails to be the sole parameter to a constructor
    std::elide_nofail -- does not fail to be the sole parameter to a constructor

Or instead of creating two distinct classes, they could be the same
template class but with a bool template parameter:

    std::elide<false>  -- fails
    std::elide<true>   -- does not fail
--
Std-Proposals mailing list
Std-Proposals@lists.isocpp.org
https://lists.isocpp.org/mailman/listinfo.cgi/std-proposals