ranges::semiregular_box< T > Struct Template Reference
Utility
Inheritance diagram for ranges::semiregular_box< T >:

## Public Member Functions

template<typename... Args>
CPP_TEMPLATE_AUX_0 | c (requires constructible_from< T, Args... >) ccconstexpr semiregular_box(in_place_t
template<typename... Args>
CPP_TEMPLATE_AUX_0 | c (requires invocable< T &, Args... >) ccconstexpr decltype(auto) operator()(Args &&... args) &noexcept(is_nothrow_invocable_v< T &, Args... >)
template<typename... Args>
CPP_TEMPLATE_AUX_0 | c (requires invocable< T const &, Args... >) ccconstexpr decltype(auto) operator()(Args &&... args) const &noexcept(is_nothrow_invocable_v< T const &, Args... >)
template<typename... Args>
CPP_TEMPLATE_AUX_0 | c (requires invocable< T, Args... >) ccconstexpr decltype(auto) operator()(Args &&... args) &&noexcept(is_nothrow_invocable_v< T, Args... >)
template<typename U >
CPP_TEMPLATE_AUX_0 | c (requires(!same_as< uncvref_t< U >, semiregular_box >) &&constructible_from< T, U > &&convertible_to< U, T >) ccconstexpr semiregular_box(U &&u) noexcept(std::is_nothrow_constructible< T, U >::value)
template<typename U >
| CPP_TEMPLATE_AUX_0 (requires(!same_as< uncvref_t< U >, semiregular_box >) &&constructible_from< T, U > &&(!convertible_to< U, T >)) const expr explicit semiregular_box(U &&u) noexcept(std::is_nothrow_constructible< T, U >::value)
constexpr T && | get () &&noexcept
constexpr T & | get () &noexcept
T const && | get () const &&=delete
constexpr T const & | get () const &noexcept
CPP_TEMPLATE_AUX_0 Args &&args | noexcept (std::is_nothrow_constructible< T, Args... >::value)
constexpr | operator T const & () const &noexcept
| operator T const && () const &&=delete
constexpr | operator T& () &noexcept
constexpr | operator T&& () &&noexcept
template<typename... Args>
void | operator() (Args &&...) const &&=delete
semiregular_box & | operator= (semiregular_box &&that) noexcept(std::is_nothrow_move_constructible< T >::value &&(!std::is_move_assignable< T >::value||std::is_nothrow_move_assignable< T >::value))
semiregular_box & | operator= (semiregular_box const &that) noexcept(std::is_nothrow_copy_constructible< T >::value &&(!std::is_copy_assignable< T >::value||std::is_nothrow_copy_assignable< T >::value))
| semiregular_box (semiregular_box &&that) noexcept(std::is_nothrow_move_constructible< T >::value)
| semiregular_box (semiregular_box const &that) noexcept(std::is_nothrow_copy_constructible< T >::value)