在我的 C++ 程序中,我有以下代码:
FileInit(gamefile, master, heap, settings);
在头文件中:
template < typename TYPE, typename COMP>
void FileInit(std::ifstream &gamefile, std::deque &master,
poorman_heap &heap, settings &set);
其中poorman_heap 在其自己的头文件中定义为:
template< typename TYPE, typename COMP>
template< typename InputIterator>
poorman_heap::poorman_heap(
InputIterator start,
InputIterator end,
COMP comp
) {
但是当我尝试传入一个堆(在第一行)时,我得到了错误:
undefined reference to `void FileInit(std::basic_ifstream >&, std::deque >&, poorman_heap&, settings&)'
collect2: error: ld returned 1 exit status
make: * [notld] Error 1
如果我不尝试传入堆,一切正常,所以我知道我已经正确链接了文件(这在过去对我来说是个问题),但我不知道如何将模板化对象传递给功能。任何帮助表示赞赏!