message: COMP: Remove dependency from std::unary_function
  the std::unary_function is removed in C++17.
  Currently it is replaced by a local subsitution function.
  This may need some change in the future.
diff: #include "ggos.h"
  +template< typename ArgumentType, typename ResultType >
  +struct unary_function
  +{
  + using argument_type = ArgumentType;
  + using result_type = ResultType;
  +};
  +
  using std::string;
  /**
  @@ -107,7 +114,7 @@ int not_newlines(const string &buf, int &num_of_newlines);
  * Function object to print something into a stream (to be used with for_each)
  */
  template<class T>
  -struct print_f : public std::unary_function<T, void>
  +struct print_f : public unary_function<T, void >
  {
  print_f(std::ostream& out, const string &s = ", ") : os(out), sep(s) {}
  void operator() (T x) { os << x << sep; }
  @@ -119,7 +126,7 @@ struct print_f : public std::unary_function<T, void>
  * Function object to print a pair into two streams (to be used with for_each)
  */
  template<class T>
  -struct pair_print_f : public std::unary_function<T, void>
  +struct pair_print_f : public unary_function<T, void >
  {
  pair_print_f(std::ostream& out1, std::ostream& out2, const string &s = ", ") :
  os1(out1), os2(out2), sep(s) {}
  