I have a template struct that I need to pass two compile time lists of types. How can this be done?
I have variadic templates but how can we separate the 2 lists?
Well I need to pass a type that is to be transformed by type functions like std::remove_pointer, std::remove_cast, etc. So this in itself is passed as a variadic template list. However to finish the work, I also need to pass other restoring type functions like std::add_const, std::add_pointer, etc which is a variable number of types also. So this needs another variadic list.
I need a struct that receives these 2 type lists and do some processing with them.
Right now I have to call the following struct twice and it is not well encapsulated:
1 2 3 4
template<typename C, template <typename> class ...Removers>
struct CombineTypeFuncs
{
};