C++ template de la spécialisation de constructeur

J'ai basé sur un modèle de classe A<T, int>, et de deux typedefs Un<string, 20> et Un<string, 30>.
Comment puis-je remplacer le constructeur pour Un<string, 20> ? Le code suivant ne fonctionne pas:

template <typename T, int M> class A;
typedef  A<std::string, 20> one_type;
typedef  A<std::string, 30> second_type;


template <typename T, int M>
class A {
public:
  A(int m) {test= (m>M);}

  bool test;

};


template<>
one_type::one_type() { cerr << "One type" << endl;}

Je voudrais la classe A<std::string,20> pour faire quelque chose que les autres n'ont pas. Comment puis-je le faire sans modifier le constructeur A:A(int) ?

Qu'essayez-vous d'obtenir les classes?
La question n'est pas claire. BTW, one_type n'a pas de constructeur vide, elle a constructeur avec un paramètre de type int.

OriginalL'auteur user231536 | 2009-12-14