Maybe you want this?
template <template <typename ...> class C, typename ...Args>
bool CompareVector(C<Args...> const * lhs, C<Args...> const * rhs)
{
// ...
}
If you only want it to work for vectors:
template <typename T, typename A>
bool CompareVector(std::vector<T, A> const * lhs, std::vector<T, A> const * rhs);
If you want it to work for arbitrary template classes whose first template argument is a template class with one argument (but why):
template <template <typename ...> class C,
template <typename> class SP,
typename T,
typename Args...>
bool CompareBizzare(C<SP<T>, Args...> const * lhs, /* ... */);
Note that none of your desired function arguments are specializations of a template that has template template parameters. The standard library does not contain any templates that take template template parameters (for now).
3
solved Please teach me how to make the template parameters of a following function