30 using type = std::remove_cvref_t<T>;
32 [[nodiscard]] type operator()(T
const &t)
const noexcept
39#define MAKE_FORWARD_VALUE(TEMPLATE_TYPE, RETURN_TYPE, ARGUMENT_TYPE) \
41 struct forward_value<TEMPLATE_TYPE> { \
42 using type = RETURN_TYPE; \
44 [[nodiscard]] type operator()(ARGUMENT_TYPE t) const noexcept \
51MAKE_FORWARD_VALUE(std::string_view,
std::string, std::string_view
const &)
52MAKE_FORWARD_VALUE(std::string_view
const,
std::string, std::string_view
const &)
53MAKE_FORWARD_VALUE(std::string_view &,
std::string, std::string_view
const &)
54MAKE_FORWARD_VALUE(std::string_view
const &,
std::string, std::string_view
const &)
57MAKE_FORWARD_VALUE(
char *,
std::string,
char const *)
58MAKE_FORWARD_VALUE(
char const *,
std::string,
char const *)
59MAKE_FORWARD_VALUE(
char *
const,
std::string,
char const *)
60MAKE_FORWARD_VALUE(
char const *
const,
std::string,
char const *)
61MAKE_FORWARD_VALUE(
char *&,
std::string,
char const *)
62MAKE_FORWARD_VALUE(
char const *&,
std::string,
char const *)
63MAKE_FORWARD_VALUE(
char *
const&,
std::string,
char const *)
64MAKE_FORWARD_VALUE(
char const *
const&,
std::string,
char const *)
66#undef MAKE_FORWARD_VALUE
71 using type =
char const *;
73 [[nodiscard]]
constexpr type operator()(
char const (&t)[N])
const noexcept
75 return static_cast<char const *
>(t);
84using forward_value_t =
typename forward_value<T>::type;
Functor for forwarding an forwarding-reference to variable.
Definition forward_value.hpp:29