undefined reference проблема линковки
От: st0nx  
Дата: 23.05.11 07:49
Оценка:
Имеется класс:

//tcpClient.hpp

class tcpClient
{
private:
...
public:

    tcpClient();
    ~tcpClient();

    template <class F> void receiveData(F &handlerFunctor);
    std::size_t sendData(const char* data);
    void connectToHost(const char* server,int port);
...

}


//tcpClient.cpp
#include "tcpClient.hpp"

template <class F>
void tcpClient::receiveData(F &handlerFunctor)
{
...
};

void tcpClient::connectToHost(const char *server, int port)
{
...
};

std::size_t tcpClient::sendData(const char* data)
{
...
};


использую:

#include "../tcpClient/tcpClient.hpp"
int main()
{    
...
    c.connectToHost("xxx.ru",80);
    c.sendData((char*)header);
    c.receiveData(f);//undefined reference to `void tcpClient::receiveData<functor>(functor&)'
    return 0;
}


Вылетает ошибка именно там где используется шаблонный класс.
Если же саму реализацию с описанием класса положить в main файл, то все прекрасно собирается.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.