【发布时间】:2009-04-15 10:55:18
【问题描述】:
我对模板有一些奇怪的问题。当尝试传递参数化迭代器时,它抱怨找不到函数。代码 sn-p 在这里,忘记功能,它使用对我感兴趣的模板化迭代器的引用
#include <list>
#include <iostream>
template<typename T>
void print_list_element(typename std::list<T>::iterator& it){
std::cout << *it << std::endl;
}
int main() {
std::list<int> theList;
theList.push_back(1);
std::list<int>::iterator it = theList.begin();
print_list_element(it);
return 0;
}
如果您尝试使用 g++ v4.3.2 编译它,它会抱怨一条消息:
main.cpp:14: error: no matching function for call to 'print_list_element(std::_List_iterator<int>&)'
是我写的代码有问题还是 g++ 需要更多信息?
【问题讨论】: