unpoint overloads

Synopses

Declared in <bslmf_invokeresult.h>

If the argument type t_TP is pointer to type X, where X is not cv‐`void`, return a reference to X; otherwise return a reference to t_TP. Note that these functions are declared but not defined and are intended to be called only in an unevaluated context.

template<class t_TP>
static
t_TP&
unpoint(t_TP&);

Same as the other unpoint overloads, for const t_TP&.

template<class t_TP>
static
t_TP const&
unpoint(t_TP const&);

Same as the other unpoint overloads, for t_TP *&.

template<class t_TP>
static
t_TP&
unpoint(t_TP*&)
requires !bsl::is_void<t_TP>::value;

Same as the other unpoint overloads, for t_TP *volatile&.

template<class t_TP>
static
t_TP&
unpoint(t_TP volatile*&)
requires !bsl::is_void<t_TP>::value;

Same as the other unpoint overloads, for t_TP *const&.

template<class t_TP>
static
t_TP&
unpoint(t_TP const*&)
requires !bsl::is_void<t_TP>::value;

Same as the other unpoint overloads, for t_TP *const volatile&.

template<class t_TP>
static
t_TP&
unpoint(t_TP const volatile*&)
requires !bsl::is_void<t_TP>::value;

Created with MrDocs