22 #include "../config.h"
24 #include "RMonoAPIFunction_Def.h"
37 template <
typename ABI,
bool required,
typename RetT,
typename... ArgsT>
40 std::string defSigStr = std::string(
typeid(RetT).name()).append(
" ").append(name).append(
"(");
45 debugDumpSignaturesArgRecurse<DefArgsTuple, 0>(defSigStr);
46 debugDumpSignaturesArgRecurse<typename RMonoAPIFunctionRawTraits<Self>::RawArgsTuple, 0>(rawSigStr);
47 debugDumpSignaturesArgRecurse<typename RMonoAPIFunctionWrapTraits<Self>::WrapArgsTuple, 0>(wrapSigStr);
48 debugDumpSignaturesArgRecurse<typename RMonoAPIFunctionAPITraits<Self>::APIArgsTuple, 0>(apiSigStr);
50 defSigStr.append(
")");
51 rawSigStr.append(
")");
52 wrapSigStr.append(
")");
53 apiSigStr.append(
")");
55 RMonoLogVerbose(
"Signatures for '%s':", name.data());
57 RMonoLogVerbose(
" Raw: %s", rawSigStr.data());
58 RMonoLogVerbose(
" Wrap: %s", wrapSigStr.data());
59 RMonoLogVerbose(
" API: %s", apiSigStr.data());
63 template <
typename ABI,
bool required,
typename RetT,
typename... ArgsT>
64 template <
typename ArgsTupleT,
size_t argIdx>
68 if constexpr(argIdx < std::tuple_size_v<ArgsTupleT>) {
69 if constexpr(argIdx != 0) {
73 sigStr.append(qualified_type_name<std::tuple_element_t<argIdx, ArgsTupleT>>());
75 debugDumpSignaturesArgRecurse<ArgsTupleT, argIdx+1>(sigStr);