Скажем, у нас есть двойной параметризованный шаблон, например
template<class A, class B>
class Class { .... };
и что существуют специализации для конкретного A и конкретного B
template<class B> class Class<A1,B> { .... };
template<class A> class Class<A,B1> { .... };
Теперь, когда мне нужно создать экземпляр Class<A1,B1>, компилятор жалуется на двусмысленность, так как он находит <A,B1> и <A1,B> одинаково полезными.
Конечно, проблему можно устранить, добавив специализацию <A1,B1>, но в моем контексте она будет идентичной <A1,B>.
Есть ли способ устранить двусмысленность, не повторяя полный <A1,B> полный код?