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 hpx::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 hpx::util::unwrap_reference<::hpx::reference_wrapper<T>>#

Public Types

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

Public Types

using type = T#
namespace hpx

Top level namespace.

Functions

template<typename T>
reference_wrapper(T&) -> reference_wrapper<T>#
template<typename T>
constexpr reference_wrapper<T> ref(T &val) noexcept#
template<typename T>
void ref(T const&&) = delete#
template<typename T>
constexpr reference_wrapper<T> ref(reference_wrapper<T> val) noexcept#
template<typename T>
constexpr reference_wrapper<T const> cref(T const &val) noexcept#
template<typename T>
void cref(T const&&) = delete#
template<typename T>
constexpr reference_wrapper<T const> cref(reference_wrapper<T> val) noexcept#
template<typename T, typename Enable = std::enable_if_t<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 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