unary_function removed in C++17. It can just be deleted. --- a/src/gm_utils.h +++ b/src/gm_utils.h @@ -117,7 +117,7 @@ * Function object to print something into a stream (to be used with for_each) */ template -struct print_f : public std::unary_function +struct print_f { print_f(std::ostream& out, const string &s = ", ") : os(out), sep(s) {} void operator() (T x) { os << x << sep; } @@ -129,7 +129,7 @@ * Function object to print a pair into two streams (to be used with for_each) */ template -struct pair_print_f : public std::unary_function +struct pair_print_f { pair_print_f(std::ostream& out1, std::ostream& out2, const string &s = ", ") : os1(out1), os2(out2), sep(s) {}