bool func1(int a){ return a < 5;}struct func2: public unary_function{ bool operator()(int a) { return a < 5; }};struct func3: public binary_function { bool operator()(int a, int b) { return a == b; }};int main(int argc, char* argv[]){ list int_list; int_list.remove_if(func1); int_list.remove_if(func2()); int_list.remove_if(bind1st(greater (), 5)); int_list.remove_if(bind2nd(less (), 5)); int_list.remove_if([](int& a){ return a < 5; });}