Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> std::vector как параметр шаблона 
:(
    Опции темы
semensemenov
Дата 14.5.2010, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 16.2.2010

Репутация: нет
Всего: нет



День добрый!
Есть такой код:
Код

//Connection.h
class Connection
{
public:
    template <typename T>
    void send(const T& packets);
};

//Connection.cpp
template <typename T> 
void Connection::send(const T& packets)
{
// do somth
}

// main.cpp
struct test{int a; int b;}st;
st.a=1;st.b=2;
std::vector<test> vt;
vt.push_back(vt);

Connection conn;
conn.send(vt);

Клмпилируется, но линковщик выдает ошибку:
1>main.obj : error LNK2019: unresolved external symbol "public: void __thiscall Connection::send<class std::vector<struct test,class std::allocator<struct test> > *>(class std::vector<struct test,class std::allocator<struct test> > * const &)" (??$send@PAV?$vector@Utest@@V?$allocator@Utest@@@std@@@std@@@Connection@@QAEXABQAV?$vector@Utest@@V?$allocator@Utest@@@std@@@std@@@Z) referenced in function _main
1>C:\Documents and Settings\riorita\Мои документы\Visual Studio 2008\Projects\net_system\Debug\net_system.exe : fatal error LNK1120: 1 unresolved externals
Может кто сталкивался?Возможно ли вообще использовать std::vector в качестве параметра шаблона?
PM MAIL   Вверх
Earnest
Дата 14.5.2010, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 53
Всего: 183



Имплементация шаблонных функций должна быть общедоступна, т.е. делать ее нужно в заголовочном, а не в cpp файле. А вектор здесь совершенно не причем.


--------------------
...
PM   Вверх
semensemenov
Дата 14.5.2010, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 16.2.2010

Репутация: нет
Всего: нет



Спасибо Earnest! так работает. вопрос снимается
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0396 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.