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

Public Types | Public Member Functions | List of all members
ranges::reference_wrapper< T > Struct Template Reference
Functional
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 | ) |
| constexpr noexcept

Precondition
  requires `(!same_as<uncvref_t<U>, reference_wrapper>) && constructible_from<base_, U>`