6#ifndef MIMICPP_PRINTING_TYPE_SIGNATURE_HPP
7#define MIMICPP_PRINTING_TYPE_SIGNATURE_HPP
20#ifndef MIMICPP_DETAIL_IS_MODULE
24 #include <type_traits>
27namespace mimicpp::printing::type::detail
29 template <print_iterator OutIter,
typename... Ts>
30 constexpr OutIter print_separated(OutIter out,
StringViewT const separator, util::type_list<Ts...>
const ts)
32 if constexpr (0u <
sizeof...(Ts))
35 [&]<
typename First,
typename... Others>([[maybe_unused]] util::type_list<First, Others...>
const) {
45 template <util::satisfies<std::is_function> Signature>
46 struct signature_type_printer<Signature>
48 template <pr
int_iterator OutIter>
49 static OutIter
print(OutIter out)
52 out = format::format_to(std::move(out),
"(");
54 out = format::format_to(std::move(out),
")");
58 out = format::format_to(std::move(out),
" const");
63 out = format::format_to(std::move(out),
" &");
67 out = format::format_to(std::move(out),
" &&");
72 out = format::format_to(std::move(out),
" noexcept");
constexpr printing::PrintFn print
Functional object, converting the given object to its textual representation.
Definition Print.hpp:183
constexpr printing::PrintTypeFn< T > print_type
Functional object, converting the given type to its textual representation.
Definition PrintType.hpp:478
constexpr Constness signature_const_qualification_v
Convenience constant, exposing the value member of the actual type-trait.
Definition Fwd.hpp:246
constexpr bool signature_is_noexcept_v
Convenience constant, exposing the value member of the actual type-trait.
Definition Fwd.hpp:86
typename signature_param_list< Signature >::type signature_param_list_t
Convenience alias, exposing the type member alias of the actual type-trait.
Definition Fwd.hpp:294
constexpr ValueCategory signature_ref_qualification_v
Convenience constant, exposing the value member of the actual type-trait.
Definition Fwd.hpp:262
@ lvalue
Definition Fwd.hpp:35
@ rvalue
Definition Fwd.hpp:36
@ as_const
Definition Fwd.hpp:29
std::basic_string_view< CharT, CharTraitsT > StringViewT
Definition Fwd.hpp:392