1

私は関数型プログラミングをC++で実装したいと思っています。C++でスカラー関数をパラメータとして変換する方法は?

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

は、だから私はScalaで、このコードスニペットを持って言うことができます。リストの最初の要素を返します。

私は同じ方法で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); 
} 

私はexample()メソッド内P内のペアのfirst要素にアクセスしたいと思います。

どうすればいいですか?

+0

。彼らは異なる獣であり、あなたのコードがC++のプログラマーによって使用されている場合、彼らはちょっと混乱します。あなたが知っているのは...ローマにいるとき、ローマ人は何をするのか。 –

答えて

関連する問題