Специализация шаблона одного метода из шаблонного классаC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Специализация шаблона одного метода из шаблонного класса

Сообщение Anonymous »

Всегда учитывая, что следующий заголовок, содержащий мой шаблонный класс, включен как минимум в два файла .CPP, этот код компилируется правильно:

Код: Выделить всё

template 
class TClass
{
public:
void doSomething(std::vector * v);
};

template 
void TClass::doSomething(std::vector * v) {
// Do something with a vector of a generic T
}

template 
inline void TClass::doSomething(std::vector * v) {
// Do something with a vector of int's
}
Но обратите внимание на встроенную строку в методе специализации. Это необходимо, чтобы избежать ошибки компоновщика (в VS2008 — LNK2005) из-за того, что метод определен более одного раза. Я понимаю это, потому что AFAIK полная специализация шаблона аналогична простому определению метода.

Итак, как мне удалить эту встроенную строку? Код не должен дублироваться при каждом его использовании. Я искал в Google, читал несколько вопросов здесь, в SO, и пробовал многие из предложенных решений, но ни одно из них не было успешно реализовано (по крайней мере, в VS 2008).

Спасибо!< /п>

Подробнее здесь: https://stackoverflow.com/questions/172 ... ated-class
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»