|
| template (typename U, typename V)(requires const ructible_from< First |
|
U AND constexpr constructible_from< Second, V > | compressed_pair (U &&u, V &&v) noexcept(noexcept(First((U &&) u)) &&noexcept(Second((V &&) v))) |
|
constexpr First & | first () & |
|
constexpr First const & | first () const & |
|
constexpr First && | first () && |
|
constexpr Second & | second () & |
|
constexpr Second const & | second () const & |
|
constexpr Second && | second () && |
|
| template (typename F, typename S)(requires convertible_to< First const & |
|
F AND constexpr convertible_to< Second const &, S > | operator std::pair< F, S > () const |
|
detail::decay_t< E > AND constructible_from< First, E > AND constexpr convertible_to< E, First > | box (E &&e) noexcept(std::is_nothrow_constructible< First, E >::value) |
|
| template (typename E)(requires(!same_as< box |
|
| template (typename E)(requires(!same_as< box |
|
detail::decay_t< E > AND constructible_from< First, E > | AND (!convertible_to< E, First >)) const expr explicit box(E &&e) noexcept(std::is_nothrow_constructible< First, E >::value) |
|
constexpr First & | get () &noexcept |
|
constexpr First const & | get () const &noexcept |
|
constexpr First && | get () &&noexcept |
|
constexpr First const && | get () const &&noexcept |
|
detail::decay_t< E > AND constructible_from< Second, E > AND constexpr convertible_to< E, Second > | box (E &&e) noexcept(std::is_nothrow_constructible< Second, E >::value) |
|
| template (typename E)(requires(!same_as< box |
|
| template (typename E)(requires(!same_as< box |
|
detail::decay_t< E > AND constructible_from< Second, E > | AND (!convertible_to< E, Second >)) const expr explicit box(E &&e) noexcept(std::is_nothrow_constructible< Second, E >::value) |
|
constexpr Second & | get () &noexcept |
|
constexpr Second const & | get () const &noexcept |
|
constexpr Second && | get () &&noexcept |
|
constexpr Second const && | get () const &&noexcept |
|