Como especializar apenas alguns membros de uma classe de modelo?

Código:

template<class T>
struct A {
  void f1() {};
  void f2() {};

};

template<>
struct A<int> {
  void f2() {};
};


int main() {
  A<int> data;
  data.f1();
  data.f2();
};
ERRO:
test.cpp: In function 'int main()':
test.cpp:16: error: 'struct A<int>' has no member named 'f1'

Basicamente, quero apenas especializar uma função e usar a definição comum para outras funções. (No código real, tenho muitas funções que não quero especializar).

Como fazer isso? Obrigado!

questionAnswers(3)

yourAnswerToTheQuestion