我想在模板类方法中使用迭代器.
这是我的代码:(testclass.h)
这是我的代码:(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::allocator<unsigned int> > >)'
我用的是mingw32 4.4
我希望有一个类可以写入不同的容器,如std :: vector,std :: list,QVector或QList,它们都具有STL样式的迭代器.