forward_like overloads
Declared in <bslmf_util.h>
Forward the specified t argument as a non-const rvalue reference when t_MODEL is an rvalue reference type.
template<
class t_MODEL,
class t_TYPE>
[[nodiscard]]
constexpr
static
bsl::remove_reference<t_TYPE>::type&&
forward_like(
t_TYPE&& t,
void* = 0) noexcept
requires !bsl::is_lvalue_reference<t_MODEL>::value &&
!bsl::is_const<
typename bsl::remove_reference<t_MODEL>::type>::value;
» more...
Forward the specified t argument as a const rvalue reference when t_MODEL is an rvalue reference type.
template<
class t_MODEL,
class t_TYPE>
[[nodiscard]]
constexpr
static
bsl::remove_reference<t_TYPE>::type const&&
forward_like(
t_TYPE&& t,
void* = 0) noexcept
requires !bsl::is_lvalue_reference<t_MODEL>::value &&
bsl::is_const<
typename bsl::remove_reference<t_MODEL>::type>::value;
» more...
Forward the specified t argument as a non-const lvalue reference when t_MODEL is an lvalue reference type.
template<
class t_MODEL,
class t_TYPE>
[[nodiscard]]
constexpr
static
t_TYPE&
forward_like(
t_TYPE&& t,
void* = 0) noexcept
requires bsl::is_lvalue_reference<t_MODEL>::value &&
!bsl::is_const<
typename bsl::remove_reference<t_MODEL>::type>::value;
» more...
Forward the specified t argument as a const lvalue reference when t_MODEL is a const lvalue reference type.
template<
class t_MODEL,
class t_TYPE>
[[nodiscard]]
constexpr
static
bsl::remove_reference<t_TYPE>::type const&
forward_like(
t_TYPE&& t,
void* = 0) noexcept
requires bsl::is_lvalue_reference<t_MODEL>::value &&
bsl::is_const<
typename bsl::remove_reference<t_MODEL>::type>::value;
» more...
The return value should not be discarded.