Всегда учитывая, что следующий заголовок, содержащий мой шаблонный класс, включен как минимум в два файла .CPP, этот код правильно компилируется:
template <class T>
class TClass 
{
public:
 void doSomething(std::vector<T> * v);
};
template <class T>
void TClass<T>::doSomething(std::vector<T> * v) {
 // Do somtehing with a vector of a generic T
}
template <>
inline void TClass<int>::doSomething(std::vector<int> * v) {
 // Do somtehing with a vector of int's
}
Но обратите внимание на inline в методе специализации. Требуется, чтобы код не имел ошибки компоновщика (в VS2008 есть LNK2005) из-за того, что метод определен более одного раза. Я понимаю это, потому что AFAIK полная спецификация шаблона совпадает с простым определением метода.
Итак, как мне удалить этот inline? Код не должен дублироваться при каждом его использовании. Я искал Google, читал некоторые вопросы здесь, в SO и пробовал многие из предлагаемых решений, но ни один из них не был успешно построен (по крайней мере, не в VS 2008).
Спасибо!
