ИМО, использование «<» было бы злом. Если это не вычисляет "меньше чем", это, вероятно, неправильное использование. </p>
В этом случае я бы смоделировал мою реализацию после STL. Я не уверен, что это именно то, что вы ищете, и это не проверено, но:
Редактировать: скомпилировано и протестировано:
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
#include <functional>
#include <ext/functional>
using namespace std;
using __gnu_cxx::compose2;
int main(int argc, char** argv) {
vector<int> list_of_b;
vector<int> included_in_a;
int min = 2;
int max = 5;
remove_copy_if(list_of_b.begin(), list_of_b.end(),
back_inserter(included_in_a),
not1(compose2(logical_and<bool>(),
bind2nd(greater<int>(), min),
bind2nd(less<int>(), max))));
copy(included_in_a.begin(), included_in_a.end(),
ostream_iterator<int>(cout, "\n"));
return 0;
}