I know how to select first parameter of variadic template:
template< class...Args> struct select_first;
template< class A, class ...Args> struct
A pretty dumb approach would be to write a helper class and specialize for each number of parameters (up to some limit of your choice). You could use preprocessor for that.
template
struct select_last_helper;
template
struct select_last_helper {
using type = T1;
};
template
struct select_last_helper {
using type = T2;
};
template
struct select_last_helper {
using type = T3;
};
template
struct select_last {
using type = typename select_last_helper::type;
};
O(1) template instantiations :)