Как специализировать только некоторые члены класса шаблона?

Код:

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

};

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


int main() {
  A<int> data;
  data.f1();
  data.f2();
};

ОШИБКА:

test.cpp: In function 'int main()':
test.cpp:16: error: 'struct A<int>' has no member named 'f1'

По сути, я хочу специализировать только одну функцию и использовать общее определение для других функций. (В реальном коде у меня много функций, на которых я не хочу специализироваться.)

Как это сделать? Спасибо!

10
задан anon 10 February 2011 в 10:01
поделиться