0

単純な 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)'

ヘルパーに感謝します。

4

1 に答える 1