11namespace hi::inline
v1 {
30 using type = std::remove_cvref_t<T>;
32 [[nodiscard]] type operator()(T
const &t)
const noexcept
38#define MAKE_FORWARD_VALUE(TEMPLATE_TYPE, RETURN_TYPE, ARGUMENT_TYPE) \
40 struct forward_value<TEMPLATE_TYPE> { \
41 using type = RETURN_TYPE; \
43 [[nodiscard]] type operator()(ARGUMENT_TYPE t) const noexcept \
50MAKE_FORWARD_VALUE(std::string_view,
std::string, std::string_view
const &)
51MAKE_FORWARD_VALUE(std::string_view
const,
std::string, std::string_view
const &)
52MAKE_FORWARD_VALUE(std::string_view &,
std::string, std::string_view
const &)
53MAKE_FORWARD_VALUE(std::string_view
const &,
std::string, std::string_view
const &)
56MAKE_FORWARD_VALUE(
char *,
std::string,
char const *)
57MAKE_FORWARD_VALUE(
char const *,
std::string,
char const *)
58MAKE_FORWARD_VALUE(
char *
const,
std::string,
char const *)
59MAKE_FORWARD_VALUE(
char const *
const,
std::string,
char const *)
60MAKE_FORWARD_VALUE(
char *&,
std::string,
char const *)
61MAKE_FORWARD_VALUE(
char const *&,
std::string,
char const *)
62MAKE_FORWARD_VALUE(
char *
const &,
std::string,
char const *)
63MAKE_FORWARD_VALUE(
char const *
const &,
std::string,
char const *)
65#undef MAKE_FORWARD_VALUE
68template<std::
size_t N>
70 using type =
char const *;
72 [[nodiscard]]
constexpr type operator()(
char const (&t)[N])
const noexcept
74 return static_cast<char const *
>(t);
DOXYGEN BUG.
Definition algorithm.hpp:13
typename forward_value< T >::type forward_value_t
Get the storage type of the forward_value functor.
Definition forward_value.hpp:83
Functor for forwarding an forwarding-reference to variable.
Definition forward_value.hpp:29