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

Public Member Functions

 common_pair () noexcept(std::is_nothrow_default_constructible< F >::value &&std::is_nothrow_default_constructible< S >::value)
 
template<typename F2 , typename S2 , requires = (Constructible<F, F2>() && Constructible<S, 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 , requires = (Constructible<F, F2 &>() && Constructible<S, 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 , requires = (Constructible<F, F2 const &>() && Constructible<S, S2 const &>())>
 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 , requires = (Constructible<F, F2>() && Constructible<S, 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 , requires = (Constructible<F2, F &>() && Constructible<S2, S &>())>
 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 , requires = (Constructible<F2, F const &>() && Constructible<S2, S const &>())>
 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 , requires = (Constructible<F2, F>() && Constructible<S2, S>())>
 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 , requires = (Assignable<F &, F2 &>() && Assignable<S &, 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 , requires = (Assignable<F &, F2 const &>() && Assignable<S &, S2 const &>())>
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)
 
template<typename F2 , typename S2 , requires = (Assignable<F &, F2>() && Assignable<S &, 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 , requires = (Assignable<F const &, F2 &>() && Assignable<S const &, 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 , requires = (Assignable<F const &, F2 const &>() && Assignable<S const &, S2 const &>())>
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 , requires = (Assignable<F const &, F2 &&>() && Assignable<S const &, 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)
 

Constructor & Destructor Documentation

◆ common_pair()

template<typename F , typename S >
ranges::v3::common_pair< F, S >::common_pair ( )
noexcept
Precondition
DefaultConstructible<F>() && DefaultConstructible<S>()