47template <
typename... Args>
52 auto nargs =
sizeof...(Args);
55 auto addE = (func.find(
"::") < func.find(
'('));
58 if(func.length() > 0 && func[0] ==
'&')
59 func = func.substr(1);
60 auto delim =
delimit(func,
":()<>");
63 if(is_memfun && is_const)
65 for(
const auto& itr : delim)
67 ret += std::to_string(itr.length());
88template <
typename... Args>
89struct mangler<
std::tuple<Args...>>
104template <
typename FuncT,
typename TraitsT = mpl::function_traits<FuncT>>
108 using _Tuple =
typename TraitsT::args_type;
109 constexpr bool is_memfun = TraitsT::is_memfun;
110 constexpr bool is_const = TraitsT::is_const;
tim::mpl::apply< std::string > string
std::string mangle(const std::string &func)
ContainerT delimit(const std::string &line, const std::string &delimiters="\"',;: ", PredicateT &&predicate=[](const std::string &s) -> std::string { return s;})
static string_t join(SepT &&separator, Tuple &&__tup, index_sequence< Idx... >) noexcept