我正在尝试实现一个简单的 std::find_if() 之类的函数来使用(我不允许在作业中使用它)。
这是我的实现:
template<class Iterator, class Function>
Iterator setFindIf(Iterator first, Iterator end, Function predicate) {
for (Iterator iterator = first; iterator != end; ++iterator) {
if (predicate(*iterator)) {
return iterator;
}
}
return end;
}
这是调用 setFindIf() 的行:
if (setFindIf(orders.begin(), orders.end(),
orderCustomerHasOpenOrder(id, ordNum)) != orders.end()) {
这是错误:
undefined reference to `std::_Rb_tree_const_iterator<Order> setFindIf<std::_Rb_tree_const_iterator<Order>, orderCustomerHasOpenOrder>(std::_Rb_tree_const_iterator<Order>, std::_Rb_tree_const_iterator<Order>, orderCustomerHasOpenOrder)'
感谢帮助者。