Единственное, что вы не можете сделать, это использовать typedef
для определения конструктора. Кроме этого, вы должны специализировать конструктор A<string,20>
следующим образом:
template<> A<string,20>::A(int){}
Если вы хотите, чтобы A<string,20>
имел конструктор , отличающийся от общего A
, вам нужно специализировать весь класс A<string,20>
:
template<> class A<string,20> {
public:
A( const string& takethistwentytimes ) { cerr << "One Type" << std::endl; }
};