【发布时间】:2012-03-10 06:25:09
【问题描述】:
我想在模板类方法中使用迭代器。 这是我的代码:(testclass.h)
template<typename T, typename container>
class TestClassX
{
public:
void gen(typename container::iterator first );
};
和文件 testclass.cpp:
template<typename T, typename container>
void TestClassX<T, container>::gen(typename container::iterator first)
{
}
当我尝试运行它时:
TestClassX<unsigned, std::vector<unsigned> > testx;
testx.gen(it);
我收到一个错误:
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> > >)'
我使用 mingw32 4.4
我想要一个可以写入不同容器的类,例如 std::vector、std::list、QVector 或 QList,所有这些容器都具有 STL 样式的迭代器。
【问题讨论】:
标签: c++ templates stl containers