How can I check if a given type is a specialization of a particular class template? For instance, given
template <class T>
struct A {};
How can I check if CompareT
is an A<*>
for some type *
in the following:
template<class CompareT>
void compare(){
// is this A ?
cout << is_same< A<*> , CompareT >::value; // A<*> ????
}
int main(){
compare< A<int> >();
}
For example, here A<int>
should match A<*>
and print 1.