template struct binary_function { typedef Arg1 first_argument_type; typedef Arg2 second_argument_type; typedef Result result_type; }; template struct greater : binary_function { bool operator() (const T& x, const T& y) const {return x>y;} };