Разъедините тип функции со специализированной функцией
Ответ наэтот вопрос выделяет тип функции, используя шаблон класса:
template <typename T>
struct function_args {};
template <typename R, typename... Args>
struct function_args<R(Args...)> {
using type = tuple<Args...>;
};
template <typename T>
using decltypeargs = typename function_args<T>::type;
Изучая, что здесь делается, я попытался переписатьfunction_args
, Я попытался сделать это с помощью функции, чтобы устранить необходимостьdecltypeargs
шаблон. Но попал в неправильный синтаксис:
template <typename T>
tuple<> myTry();
template <typename Ret, typename... Args>
tuple<Args...> myTry<Ret(Args...)>();
Я надеялся позвонитьdecltype(myTry<decltype(foo)>())
чтобы получитьtuple
введите вместо того, чтобы позвонитьdecltypeargs<decltype(foo)>
, Есть ли способ сделать это с помощью объявления функции?