bcompos1.cpp

bcompos1.cpp

#include ‹iostream.h›

#include ‹stl.h›

struct odd: public unary_function‹int, bool› {

 odd() {}

 bool operator() (int n_) const {return (n_ % 2) - 1;}

};

struct positive: public unary_function‹int, bool› {

 positive() {}

 bool operator() (int n_) const {return n_ ›= 0;}

};

int array[6] = {-2, -1, 0, 1, 2, 3};

int main() {

 binary_compose‹logical_and‹bool›, odd, positive› b(logical_and‹bool›(), odd(), positive());

 int* p = find_if(array, array + 6, b);

 if (p != array + 6) cout ‹‹ *p ‹‹ " is odd and positive" ‹‹ endl;

 return 0;

}