25#include "detail/identifier.hpp"
29namespace essence::meta {
36 template <
typename T, identifier_param Param = identifier_param{}>
37 consteval auto get_literal_string_t() noexcept {
38 if constexpr (Param.shortened) {
39 return detail::get_short_literal_string<T, Param>();
41 return detail::get_literal_string<T, Param>();
52 template <
typename T,
auto Value, identifier_param Param = identifier_param{}>
53 consteval auto get_literal_string_v() noexcept {
54 if constexpr (Param.shortened) {
55 return detail::get_short_literal_string<Value, T, Param>();
57 return detail::get_literal_string<Value, T, Param>();
67 template <
auto Value, identifier_param Param = identifier_param{}>
68 requires(std::is_pointer_v<
decltype(Value)> && std::is_function_v<std::remove_pointer_t<
decltype(Value)>>)
69 consteval auto get_function_name()
noexcept {
70 if constexpr (Param.shortened) {
71 return detail::get_short_function_name<Value, Param>();
73 return detail::get_function_name<Value, Param>();