Tôi muốn sử dụng các trình vòng lặp trong phương thức lớp mẫu. Đây là mã của tôi: (testclass.h)Các tham chiếu không xác định đối với các hàm thành viên của một mẫu lớp
template<typename T, typename container>
class TestClassX
{
public:
void gen(typename container::iterator first);
};
và tập tin testclass.cpp:
template<typename T, typename container>
void TestClassX<T, container>::gen(typename container::iterator first)
{
}
Khi tôi cố gắng để chạy nó:
TestClassX<unsigned, std::vector<unsigned> > testx;
testx.gen(it);
tôi nhận được một lỗi:
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> > >)'
Tôi sử dụng mingw32 4.4
Tôi muốn có một lớp có thể ghi vào các vùng chứa khác nhau như std :: vector, std :: list, QVector hoặc QList tất cả đều có trình lặp kiểu STL.
có thể trùng lặp của [Chưa xác định tham chiếu đến thành viên mẫu] (http://stackoverflow.com/questions/4100893/undefined-reference-to-template-members) – kennytm