template metafunction para detectar especializações de template

Inspirado poressa questão, eu estou querendo saber se há alguma verificação em tempo de compilação pode introduzir para detectar se duas instanciações de modelo dadas:

template <typename T>
class Templ...

typedef Templ<std::string> stringInstance;
typedef Templ<double> doubleInstance;

são construídos a partir da mesma definição, ou se são construídos a partir de diferentes especializações doTempl modelo

Então, basicamente, a função de modelo hipotético se comportará assim:

template <typename T>
class Templ
{}

template <>
class Templ<std::string>
{}

template <>
class Templ<double>
{}

template <typename T1,typename T2>
class Belong_To_Same_Templ_Definition
{}

//tests
typedef Templ<std::string> stringInstance;
typedef Templ<double> doubleInstance;
typedef Templ<int> intInstance;
typedef Templ<char> charInstance;

assert( Belong_To_Same_Templ_Definition< intInstance , charInstance >::value == true);
assert( Belong_To_Same_Templ_Definition< intInstance , doubleInstance >::value == false);
assert( Belong_To_Same_Templ_Definition< stringInstance , doubleInstance >::value == false);

é possível criar esse tipo de metafuncional?

questionAnswers(1)

yourAnswerToTheQuestion