Range-v3 Range algorithms, views, and actions for the Standard Library |

Public Member Functions | List of all members
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_pair & | operator= (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_pair & | operator= (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_pair & | operator= (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>`