Range-v3
Range algorithms, views, and actions for the Standard Library
ranges::compressed_pair< First, Second > Struct Template Reference
+ Inheritance diagram for ranges::compressed_pair< First, Second >:

Public Types

using first_type = First
 
using second_type = Second
 

Public Member Functions

template<typename U , typename V >
requires constructible_from<First, U> && constructible_from<Second, V>
constexpr compressed_pair (U &&u, V &&v) noexcept(noexcept(First((U &&) u)) &&noexcept(Second((V &&) v)))
 
constexpr Firstfirst () &
 
constexpr First && first () &&
 
constexpr First const & first () const &
 
template<typename F , typename S >
requires convertible_to<First const &, F> && convertible_to<Second const &, S>
constexpr operator std::pair< F, S > () const
 
constexpr Secondsecond () &
 
constexpr Second && second () &&
 
constexpr Second const & second () const &
 
- Public Member Functions inherited from ranges::box< First, meta::size_t< 0 > >
constexpr box (E &&e) noexcept(std::is_nothrow_constructible< First, E >::value)
 
constexpr box (E &&e) noexcept(std::is_nothrow_constructible< First, E >::value)
 
constexpr First && get () &&noexcept
 
constexpr Firstget () &noexcept
 
constexpr First const && get () const &&noexcept
 
constexpr First const & get () const &noexcept
 
- Public Member Functions inherited from ranges::box< Second, meta::size_t< 1 > >
constexpr box (E &&e) noexcept(std::is_nothrow_constructible< Second, E >::value)
 
constexpr box (E &&e) noexcept(std::is_nothrow_constructible< Second, E >::value)
 
constexpr Second && get () &&noexcept
 
constexpr Secondget () &noexcept
 
constexpr Second const && get () const &&noexcept
 
constexpr Second const & get () const &noexcept