1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
template<bool VALUE>
struct RecoFlag
{
const static bool Value = VALUE;
};
// Le cas de base pour la reconnaissance de deux vecteurs de même dimension. Ici pas de problème
template<
template<typename TYPE1, int DIM1> class A,
template<typename TYPE2, int DIM2> class B
>
struct Correspondance : public RecoFlag<false>
{ };
//La spécialisation de la classe précédente, qui ne fonctionne pas, ce sont les déclarations des templates "template<typename TYPEX, int DIMX> Vect<TYPEX, DIMX>" qui poseraient problème
template< >
struct Correspondance< template<typename TYPE1, int DIM1> Vect<TYPE1, DIM1>,
template<typename TYPE2, int DIM2> Vect<TYPE2, DIM2>
> : public RecoFlag< DIM1==DIM2 >
{ }; |