hpx::reference_wrapper, hpx::ref, hpx::cref#

Defined in header hpx/functional.hpp.

See Public API for a list of names and headers that are part of the public HPX API.

template<typename T>
struct reference_wrapper<T, std::enable_if_t<traits::needs_reference_semantics_v<T>>>#

Public Types

using type = T#

Public Functions

reference_wrapper() = default#
template<typename U, typename Enable = std::enable_if_t<!std::is_same_v<std::decay_t<U>, reference_wrapper>>>
inline reference_wrapper(U &&val)#
inline reference_wrapper(reference_wrapper const &rhs)#
reference_wrapper(reference_wrapper &&rhs) = default#
inline reference_wrapper &operator=(reference_wrapper const &rhs)#
reference_wrapper &operator=(reference_wrapper &&rhs) = default#
inline operator type() const#
inline type get() const#

Private Members

T ptr = {}#
template<typename T>
struct unwrap_reference<::hpx::reference_wrapper<T>>#

Public Types

using type = T#
template<typename T>
struct unwrap_reference<::hpx::reference_wrapper<T> const>#

Public Types

using type = T#
namespace hpx

Top level namespace.

Functions

template<typename T>
HPX_CXX_EXPORT reference_wrapper(T&) -> reference_wrapper<T>#
template<typename T> constexpr HPX_CXX_EXPORT reference_wrapper< T > ref (T &val) noexcept
template<typename T> HPX_CXX_EXPORT void ref (T const &&)=delete
template<typename T> constexpr HPX_CXX_EXPORT reference_wrapper< T > ref (reference_wrapper< T > val) noexcept
template<typename T> constexpr HPX_CXX_EXPORT reference_wrapper< T const  > cref (T const &val) noexcept
template<typename T> HPX_CXX_EXPORT void cref (T const &&)=delete
template<typename T> constexpr HPX_CXX_EXPORT reference_wrapper< T const  > cref (reference_wrapper< T > val) noexcept
template<typename T> HPX_CXX_EXPORT requires (traits::needs_reference_semantics_v< T >) reference_wrapper< T > ref(T &&val) noexcept
template<typename T, typename Enable = void>
struct reference_wrapper : public std::reference_wrapper<T>#

Public Functions

reference_wrapper() = delete#
template<typename T> needs_reference_semantics_v< T > > >

Public Types

using type = T#

Public Functions

reference_wrapper() = default#
template<typename U, typename Enable = std::enable_if_t<!std::is_same_v<std::decay_t<U>, reference_wrapper>>>
inline reference_wrapper(U &&val)#
inline reference_wrapper(reference_wrapper const &rhs)#
reference_wrapper(reference_wrapper &&rhs) = default#
inline reference_wrapper &operator=(reference_wrapper const &rhs)#
reference_wrapper &operator=(reference_wrapper &&rhs) = default#
inline operator type() const#
inline type get() const#

Private Members

T ptr = {}#
namespace traits

Variables

template<typename T> constexpr HPX_CXX_EXPORT bool needs_reference_semantics_v   =             needs_reference_semantics<T>::value
template<typename T>
struct needs_reference_semantics : public false_type#

Subclassed by hpx::traits::needs_reference_semantics< T const >

template<typename T>
struct needs_reference_semantics<T const> : public hpx::traits::needs_reference_semantics<T>#
namespace util
template<typename T> reference_wrapper< T > >

Public Types

using type = T#
template<typename T> reference_wrapper< T > const >

Public Types

using type = T