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

Public Types

using reference = meta::if_< std::is_reference< T >, T, T & >
 
using type = meta::_t< std::remove_reference< T > >
 

Public Member Functions

constexpr reference get () const noexcept
 
constexpr operator reference () const noexcept
 
template<typename... >
 operator std::reference_wrapper< type > () const noexcept
 
template<typename ... Args>
constexpr auto operator() (Args &&...args) const noexcept(noexcept(invoke(static_cast< reference >(*t_), static_cast< Args && >(args)...))) -> decltype(invoke(static_cast< reference >(*t_), static_cast< Args && >(args)...))
 
template<typename U >
constexpr reference_wrapper (U &&u) noexcept(std::is_nothrow_constructible< base_, U >::value)
 

Member Function Documentation

◆ operator std::reference_wrapper< type >()

template<typename T >
template<typename... >
ranges::reference_wrapper< T >::operator std::reference_wrapper< type > ( ) const
noexcept
Precondition
requires (!std::is_rvalue_reference<T>::value) //

Constructor & Destructor Documentation

◆ reference_wrapper()

template<typename T >
template<typename U >
constexpr ranges::reference_wrapper< T >::reference_wrapper ( U &&  u)
constexprnoexcept
Precondition
requires (!same_as<uncvref_t<U>, reference_wrapper>) && constructible_from<base_, U>