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

Public Member Functions

std::tuple< Ts... > const & base () const noexcept
 
std::tuple< Ts... > & base () noexcept
 
template<typename... Us>
 common_tuple (common_tuple< Us... > &&that) noexcept(meta::and_c< std::is_nothrow_constructible< Ts, Us >::value... >::value)
 
template<typename... Us>
 common_tuple (common_tuple< Us... > &that) noexcept(meta::and_c< std::is_nothrow_constructible< Ts, Us & >::value... >::value)
 
template<typename... Us>
 common_tuple (common_tuple< Us... > const &that) noexcept(meta::and_c< std::is_nothrow_constructible< Ts, Us const & >::value... >::value)
 
template<typename... Us>
 common_tuple (std::tuple< Us... > &&that) noexcept(meta::and_c< std::is_nothrow_constructible< Ts, Us >::value... >::value)
 
template<typename... Us>
 common_tuple (std::tuple< Us... > &that) noexcept(meta::and_c< std::is_nothrow_constructible< Ts, Us & >::value... >::value)
 
template<typename... Us>
 common_tuple (std::tuple< Us... > const &that) noexcept(meta::and_c< std::is_nothrow_constructible< Ts, Us const & >::value... >::value)
 
template<typename... Us>
 common_tuple (Us &&... us) noexcept(meta::and_c< std::is_nothrow_constructible< Ts, Us >::value... >::value)
 
template<typename... Us>
 operator std::tuple< Us... > () &&noexcept(meta::and_c< std::is_nothrow_constructible< Us, Ts >::value... >::value)
 
template<typename... Us>
 operator std::tuple< Us... > () &noexcept(meta::and_c< std::is_nothrow_constructible< Us, Ts & >::value... >::value)
 
template<typename... Us>
 operator std::tuple< Us... > () const &noexcept(meta::and_c< std::is_nothrow_constructible< Us, Ts const & >::value... >::value)
 
template<typename... Us>
common_tuple const & operator= (std::tuple< Us... > &&that) const noexcept(meta::and_c< std::is_nothrow_assignable< Ts const &, Us && >::value... >::value)
 
template<typename... Us>
common_tupleoperator= (std::tuple< Us... > &&that) noexcept(meta::and_c< std::is_nothrow_assignable< Ts &, Us >::value... >::value)
 
template<typename... Us>
common_tuple const & operator= (std::tuple< Us... > &that) const noexcept(meta::and_c< std::is_nothrow_assignable< Ts const &, Us & >::value... >::value)
 
template<typename... Us>
common_tupleoperator= (std::tuple< Us... > &that) noexcept(meta::and_c< std::is_nothrow_assignable< Ts &, Us & >::value... >::value)
 
template<typename... Us>
common_tuple const & operator= (std::tuple< Us... > const &that) const noexcept(meta::and_c< std::is_nothrow_assignable< Ts const &, Us const & >::value... >::value)
 
template<typename... Us>
common_tupleoperator= (std::tuple< Us... > const &that) noexcept(meta::and_c< std::is_nothrow_assignable< Ts &, Us const & >::value... >::value)
 

Member Function Documentation

◆ operator std::tuple< Us... >() [1/3]

template<typename... Ts>
template<typename... Us>
ranges::common_tuple< Ts >::operator std::tuple< Us... > ( ) &&
noexcept
Precondition
requires constructible_from<detail::args<Us...>, detail::args<Ts...>>

◆ operator std::tuple< Us... >() [2/3]

template<typename... Ts>
template<typename... Us>
ranges::common_tuple< Ts >::operator std::tuple< Us... > ( ) &
noexcept
Precondition
requires constructible_from<detail::args<Us...>, detail::rargs<Ts...>>

◆ operator std::tuple< Us... >() [3/3]

template<typename... Ts>
template<typename... Us>
ranges::common_tuple< Ts >::operator std::tuple< Us... > ( ) const &
noexcept
Precondition
requires constructible_from<detail::args<Us...>, detail::rargs<Ts const...>>

◆ operator=() [1/6]

template<typename... Ts>
template<typename... Us>
common_tuple const& ranges::common_tuple< Ts >::operator= ( std::tuple< Us... > &&  that) const
noexcept
Precondition
requires std::is_assignable<detail::args<Ts const...> &, detail::args<Us...>>::value

◆ operator=() [2/6]

template<typename... Ts>
template<typename... Us>
common_tuple& ranges::common_tuple< Ts >::operator= ( std::tuple< Us... > &&  that)
noexcept
Precondition
requires std::is_assignable<detail::args<Ts...> &, detail::args<Us...>>::value //

◆ operator=() [3/6]

template<typename... Ts>
template<typename... Us>
common_tuple const& ranges::common_tuple< Ts >::operator= ( std::tuple< Us... > &  that) const
noexcept
Precondition
requires std::is_assignable<detail::args<Ts const...> &, detail::rargs<Us...>>::value

◆ operator=() [4/6]

template<typename... Ts>
template<typename... Us>
common_tuple& ranges::common_tuple< Ts >::operator= ( std::tuple< Us... > &  that)
noexcept
Precondition
requires std::is_assignable<detail::args<Ts...> &, detail::rargs<Us...>>::value //

◆ operator=() [5/6]

template<typename... Ts>
template<typename... Us>
common_tuple const& ranges::common_tuple< Ts >::operator= ( std::tuple< Us... > const &  that) const
noexcept
Precondition
requires std::is_assignable<detail::args<Ts const...> &, detail::rargs<Us const...>>::value

◆ operator=() [6/6]

template<typename... Ts>
template<typename... Us>
common_tuple& ranges::common_tuple< Ts >::operator= ( std::tuple< Us... > const &  that)
noexcept
Precondition
requires std::is_assignable<detail::args<Ts...> &, detail::rargs<Us const...>>::value //

Constructor & Destructor Documentation

◆ common_tuple() [1/7]

template<typename... Ts>
template<typename... Us>
ranges::common_tuple< Ts >::common_tuple ( Us &&...  us)
explicitnoexcept
Precondition
requires constructible_from<detail::args<Ts...>, detail::args<Us...>>

◆ common_tuple() [2/7]

template<typename... Ts>
template<typename... Us>
ranges::common_tuple< Ts >::common_tuple ( std::tuple< Us... > &  that)
noexcept
Precondition
requires constructible_from<detail::args<Ts...>, detail::rargs<Us...>>

◆ common_tuple() [3/7]

template<typename... Ts>
template<typename... Us>
ranges::common_tuple< Ts >::common_tuple ( std::tuple< Us... > const &  that)
noexcept
Precondition
requires constructible_from<detail::args<Ts...>, detail::rargs<Us const...>>

◆ common_tuple() [4/7]

template<typename... Ts>
template<typename... Us>
ranges::common_tuple< Ts >::common_tuple ( std::tuple< Us... > &&  that)
noexcept
Precondition
requires constructible_from<detail::args<Ts...>, detail::args<Us...>>

◆ common_tuple() [5/7]

template<typename... Ts>
template<typename... Us>
ranges::common_tuple< Ts >::common_tuple ( common_tuple< Us... > &  that)
noexcept
Precondition
requires constructible_from<detail::args<Ts...>, detail::rargs<Us...>>

◆ common_tuple() [6/7]

template<typename... Ts>
template<typename... Us>
ranges::common_tuple< Ts >::common_tuple ( common_tuple< Us... > const &  that)
noexcept
Precondition
requires constructible_from<detail::args<Ts...>, detail::rargs<Us const...>>

◆ common_tuple() [7/7]

template<typename... Ts>
template<typename... Us>
ranges::common_tuple< Ts >::common_tuple ( common_tuple< Us... > &&  that)
noexcept
Precondition
requires constructible_from<detail::args<Ts...>, detail::args<Us...>>