Range-v3
Range algorithms, views, and actions for the Standard Library
ranges::common_pair< F, S > Struct Template Reference
+ Inheritance diagram for ranges::common_pair< F, S >:

Public Member Functions

template<typename F2 , typename S2 >
 common_pair (F2 &&f2, S2 &&s2) noexcept(std::is_nothrow_constructible< F, F2 >::value &&std::is_nothrow_constructible< S, S2 >::value)
 
template<typename F2 , typename S2 >
 common_pair (std::pair< F2, S2 > &&that) noexcept(std::is_nothrow_constructible< F, F2 >::value &&std::is_nothrow_constructible< S, S2 >::value)
 
template<typename F2 , typename S2 >
 common_pair (std::pair< F2, S2 > &that) noexcept(std::is_nothrow_constructible< F, F2 & >::value &&std::is_nothrow_constructible< S, S2 & >::value)
 
template<typename F2 , typename S2 >
 common_pair (std::pair< F2, S2 > const &that) noexcept(std::is_nothrow_constructible< F, F2 const & >::value &&std::is_nothrow_constructible< S, S2 const & >::value)
 
template<typename F2 , typename S2 >
 operator std::pair< F2, S2 > () &&noexcept(std::is_nothrow_constructible< F2, F >::value &&std::is_nothrow_constructible< S2, S >::value)
 
template<typename F2 , typename S2 >
 operator std::pair< F2, S2 > () &noexcept(std::is_nothrow_constructible< F2, F & >::value &&std::is_nothrow_constructible< S2, S & >::value)
 
template<typename F2 , typename S2 >
 operator std::pair< F2, S2 > () const &noexcept(std::is_nothrow_constructible< F2, F const & >::value &&std::is_nothrow_constructible< S2, S const & >::value)
 
template<typename F2 , typename S2 >
common_pair const & operator= (std::pair< F2, S2 > &&that) const noexcept(std::is_nothrow_assignable< F const &, F2 && >::value &&std::is_nothrow_assignable< S const &, S2 && >::value)
 
template<typename F2 , typename S2 >
common_pairoperator= (std::pair< F2, S2 > &&that) noexcept(std::is_nothrow_assignable< F &, F2 >::value &&std::is_nothrow_assignable< S &, S2 >::value)
 
template<typename F2 , typename S2 >
common_pair const & operator= (std::pair< F2, S2 > &that) const noexcept(std::is_nothrow_assignable< F const &, F2 & >::value &&std::is_nothrow_assignable< S const &, S2 & >::value)
 
template<typename F2 , typename S2 >
common_pairoperator= (std::pair< F2, S2 > &that) noexcept(std::is_nothrow_assignable< F &, F2 & >::value &&std::is_nothrow_assignable< S &, S2 & >::value)
 
template<typename F2 , typename S2 >
common_pair const & operator= (std::pair< F2, S2 > const &that) const noexcept(std::is_nothrow_assignable< F const &, F2 const & >::value &&std::is_nothrow_assignable< S const &, S2 const & >::value)
 
template<typename F2 , typename S2 >
common_pairoperator= (std::pair< F2, S2 > const &that) noexcept(std::is_nothrow_assignable< F &, F2 const & >::value &&std::is_nothrow_assignable< S &, S2 const & >::value)
 

Member Function Documentation

◆ operator std::pair< F2, S2 >() [1/3]

template<typename F , typename S >
template<typename F2 , typename S2 >
ranges::common_pair< F, S >::operator std::pair< F2, S2 > ( ) &&
noexcept
Precondition
requires constructible_from<F2, F> && constructible_from<S2, S>

◆ operator std::pair< F2, S2 >() [2/3]

template<typename F , typename S >
template<typename F2 , typename S2 >
ranges::common_pair< F, S >::operator std::pair< F2, S2 > ( ) &
noexcept
Precondition
requires constructible_from<F2, F &> && constructible_from<S2, S &>

◆ operator std::pair< F2, S2 >() [3/3]

template<typename F , typename S >
template<typename F2 , typename S2 >
ranges::common_pair< F, S >::operator std::pair< F2, S2 > ( ) const &
noexcept
Precondition
requires constructible_from<F2, F const &> && constructible_from<S2, S const &>

◆ operator=() [1/6]

template<typename F , typename S >
template<typename F2 , typename S2 >
common_pair const& ranges::common_pair< F, S >::operator= ( std::pair< F2, S2 > &&  that) const
noexcept
Precondition
requires assignable_from<F const &, F2> && assignable_from<S const &, S2>

◆ operator=() [2/6]

template<typename F , typename S >
template<typename F2 , typename S2 >
common_pair& ranges::common_pair< F, S >::operator= ( std::pair< F2, S2 > &&  that)
noexcept
Precondition
requires assignable_from<F &, F2> && assignable_from<S &, S2>

◆ operator=() [3/6]

template<typename F , typename S >
template<typename F2 , typename S2 >
common_pair const& ranges::common_pair< F, S >::operator= ( std::pair< F2, S2 > &  that) const
noexcept
Precondition
requires assignable_from<F const &, F2 &> && assignable_from<S const &, S2 &>

◆ operator=() [4/6]

template<typename F , typename S >
template<typename F2 , typename S2 >
common_pair& ranges::common_pair< F, S >::operator= ( std::pair< F2, S2 > &  that)
noexcept
Precondition
requires assignable_from<F &, F2 &> && assignable_from<S &, S2 &>

◆ operator=() [5/6]

template<typename F , typename S >
template<typename F2 , typename S2 >
common_pair const& ranges::common_pair< F, S >::operator= ( std::pair< F2, S2 > const &  that) const
noexcept
Precondition
requires assignable_from<F const &, F2 const &> && assignable_from<S const &, S2 const &>

◆ operator=() [6/6]

template<typename F , typename S >
template<typename F2 , typename S2 >
common_pair& ranges::common_pair< F, S >::operator= ( std::pair< F2, S2 > const &  that)
noexcept
Precondition
requires assignable_from<F &, F2 const &> && assignable_from<S &, S2 const &>

Constructor & Destructor Documentation

◆ common_pair() [1/4]

template<typename F , typename S >
template<typename F2 , typename S2 >
ranges::common_pair< F, S >::common_pair ( F2 &&  f2,
S2 &&  s2 
)
noexcept
Precondition
requires constructible_from<F, F2> && constructible_from<S, S2>

◆ common_pair() [2/4]

template<typename F , typename S >
template<typename F2 , typename S2 >
ranges::common_pair< F, S >::common_pair ( std::pair< F2, S2 > &  that)
noexcept
Precondition
requires constructible_from<F, F2 &> && constructible_from<S, S2 &>

◆ common_pair() [3/4]

template<typename F , typename S >
template<typename F2 , typename S2 >
ranges::common_pair< F, S >::common_pair ( std::pair< F2, S2 > const &  that)
noexcept
Precondition
requires constructible_from<F, F2 const &> && constructible_from<S, S2 const &>

References ranges::unwrap_reference.

◆ common_pair() [4/4]

template<typename F , typename S >
template<typename F2 , typename S2 >
ranges::common_pair< F, S >::common_pair ( std::pair< F2, S2 > &&  that)
noexcept
Precondition
requires constructible_from<F, F2> && constructible_from<S, S2>