Quiero utilizar iteradores en el método de clase de plantilla. Aquí está mi código: (testclass.h)Referencias no definidas a funciones miembro de una plantilla de clase
template<typename T, typename container>
class TestClassX
{
public:
void gen(typename container::iterator first);
};
y el archivo testclass.cpp:
template<typename T, typename container>
void TestClassX<T, container>::gen(typename container::iterator first)
{
}
Cuando trato de ejecutarlo:
TestClassX<unsigned, std::vector<unsigned> > testx;
testx.gen(it);
consigo un error:
Error:undefined reference to `TestClassX<unsigned int, std::vector<unsigned int, std::allocator<unsigned int> > >::gen(__gnu_cxx::__normal_iterator<unsigned int*, std::vector<unsigned int, std::allocator<unsigned int> > >)'
Yo uso mingw32 4.4
Quiero tener una clase que pueda escribir en diferentes contenedores como std :: vector, std :: list, QVector o QList, todos los que tienen iteradores de estilo STL.
posible duplicado de [Referencia no definida a miembros de plantilla] (http://stackoverflow.com/questions/4100893/undefined-reference-to-template-members) – kennytm