Разъедините тип функции со специализированной функцией

Ответ наэтот вопрос выделяет тип функции, используя шаблон класса:

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)>, Есть ли способ сделать это с помощью объявления функции?

Ответы на вопрос(3)

Ваш ответ на вопрос