Если у меня есть класс шаблона
template<typename T>
class C {
public:
void method1() { ... }
void method2() { ... }
std::string method3(T &t) {
// ...
std::string s = t.SerializeToString();
// ...
return s;
}
// ...
};
и я хочу специализировать его для T = std::string
, но только изменив method3(T&)
(сохранив все остальные методы), а еще лучше, только ту часть метода3, которая для T = std::string
просто станет std::string s = t;
, с минимальным влиянием на текущий код (меньше повторения сигнатур методов, меньше подклассов), как бы я это сделал?
РЕДАКТИРОВАТЬ: я разрабатываю на С++ 11