When templates are used, you can't separate header from implementation. The implementation has to placed in the header - similar to how the STL classes are implemented.