proxy

proxy::operator=

// (1)
proxy& operator=(std::nullptr_t)
    noexcept(F::constraints.destructibility >= constraint_level::nothrow)
    requires(F::constraints.destructibility >= constraint_level::nontrivial);

// (2)
proxy& operator=(const proxy&) noexcept requires(F::constraints.copyability ==
    constraint_level::trivial) = default;
proxy& operator=(const proxy& rhs)
    noexcept(F::constraints.copyability >= constraint_level::nothrow &&
        F::constraints.destructibility >= constraint_level::nothrow)
    requires((F::constraints.copyability == constraint_level::nontrivial ||
        F::constraints.copyability == constraint_level::nothrow) &&
        F::constraints.destructibility >= constraint_level::nontrivial);

// (3)
proxy& operator=(proxy&& rhs)
    noexcept(F::constraints.relocatability >= constraint_level::nothrow &&
        F::constraints.destructibility >= constraint_level::nothrow)
    requires(F::constraints.relocatability >= constraint_level::nontrivial &&
        F::constraints.destructibility >= constraint_level::nontrivial &&
        F::constraints.copyability != constraint_level::trivial);

// (4)
template <class P>
proxy& operator=(P&& ptr)
    noexcept(std::is_nothrow_constructible_v<std::decay_t<P>, P> &&
        F::constraints.destructibility >= constraint_level::nothrow)
    requires(proxiable<std::decay_t<P>, F> &&
        std::is_constructible_v<std::decay_t<P>, P> &&
        F::constraints.destructibility >= constraint_level::nontrivial);

Assigns a new value to proxy or destroys the contained value.

Return Value

*this.