いや、省略した場合のデフォルトを指定しない限り、そんなことにはならない

template <typename T1,typename T2=void>
class A;

みたいにする
まあ、primaryの定義と同時にも書けるし、そっちが普通