#include <iostream>
#include <tuple>
template <typename T> struct TupleOfArguments;
template <typename R, typename ... Args>
struct TupleOfArguments<R(Args...)> {
typedef std::tuple<Args...> type;
};
void f(int, double) {}
int main()
{
TupleOfArguments<decltype(f)>::type mytuple(42, 42.0);
}
clang++