Как преобразовать функцию Scala в качестве параметра в C++?

Поэтому я хотел бы реализовать функциональное программирование на с ++, так же, как это делалось бы в Scala.

Допустим, у меня есть этот фрагмент кода в Scala:

def exampleA(l: List[P], f: P => Option[P]): Option[P] = l match {
  case Nil => None
  case x :: l => val a = f(x); if ( a.notDefined ) exampleA(l, f) else a
}

Это берет в списке P, и a function as parameter, Он вернет первый элемент в списке.

Теперь я хотел бы подойти к C++ таким же образом, и я уже сбит с толку, потому что нет информации относительно вызова функции в качестве параметра.

Итак, это то, что я имею до сих пор:

typedef vector<pair<int,int> > P;

P exampleB( P (*f)(int,Path) ) {
  cout << (*f)->first << endl;
}


P exampleBA(int dim, Path path) {
  exampleB(exampleBA);
}

Я хотел бы получить доступ к first элемент пары внутри P внутри example() метод.

Как я могу это сделать?

1 ответ

Другие вопросы по тегам