шаблонная специализация шаблонного класса
Я хочу специализировать следующую функцию-член:
class foo {
template
T get() const;
};
В другой классbar
это также зависит от шаблонов.
Например, я хотел быbar
бытьstd::pair
с некоторыми параметрами шаблона, что-то вроде этого:
template
std::pair foo::get() const
{
T1 x=...;
T2 y=...;
return std::pair(x,y);
}
Где T1 и T2 также являются шаблонами. Как это может быть сделано? Насколько я знаю, это должно быть возможно.
Так что теперь я могу позвонить:
some_foo.get();
Полный / окончательный ответ:
template struct traits;
class foo {
template
T get() const
{
return traits::get(*this);
}
};
template
struct traits {
static T get(foo &f)
{
return f.get();
}
};
template
struct traits {
static std::pair get(foo &f)
{
T1 x=...;
T2 y=...;
return std::make_pair(x,y);
}
};