Как получить тип аргумента шаблона переменной?
Я не могу найти способ определить тип как это:
template<typename TFirst, typename TSecond, typename ... Args>
using hasSomeFunc = decltype(std::declval<TSecond>().SomeFunc<TFirst, Args...>(std::declval<std::function<void(TFirst&)>>(), std::declval<TFirst&>(), std::declval<Args&>() ...));
Моя проблема в том, что компилятор не позволяет мне написать это в контексте:
std::declval<Args&>() ...
Есть ли способ определить тип шаблонной функции с переменным аргументом?
Я использую C++17.
Большое спасибо заранее.