template<typename T1, typename T2> class A{}; template<typename T> using Specialization_1 = A<T, int>; template<typename T> using Specialization_2 = A<T, double>; template<typename T> using Specialization_3 = A<int, T>; Can you specify such a template so that it means only the following:
1) Specialization_1 || Specialization_2 Specialization_1 || Specialization_2
2) Specialization_1 || Specialization_3 Specialization_1 || Specialization_3
3) Specialization_2 || Specialization_3 Specialization_2 || Specialization_3 ?