метафункция шаблона для определения специализаций шаблона

Вдохновленныйэтот вопросяИнтересно, есть ли какая-то проверка во время компиляции, которую можно ввести, чтобы обнаружить, есть ли два заданных экземпляра шаблона:

template 
class Templ...

typedef Templ stringInstance;
typedef Templ doubleInstance;

построены из того же определения, или если они построены из разных специализацийTempl шаблон

так что в основном гипотетическая функция шаблона будет вести себя так:

template 
class Templ
{}

template 
class Templ
{}

template 
class Templ
{}

template 
class Belong_To_Same_Templ_Definition
{}

//tests
typedef Templ stringInstance;
typedef Templ doubleInstance;
typedef Templ intInstance;
typedef Templ 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);

Возможно ли создать такую метафункцию?

Ответы на вопрос(1)

Ваш ответ на вопрос