0

gfunctionへのポインターを入力として受け取る関数を (サードパーティのライブラリから) 呼び出したいと思いますf。この関数ポインターは、fそれ自体がいくつかの引数を取るようなものです。

私の関数はデータに依存しており、関数ポインターで使用される署名を使用して実装する必要があるためf、このデータをパラメーターとして関数に渡す (への参照) ことができないため、次の 2 つのいずれかを実行したいと思います。ff

  • fクラスの (非静的) メンバー関数として実装する
  • fHelper追加の引数を受け取るヘルパー関数を実装し、関数ポインター (ただし、関数オブジェクトではない) を構築します。関数ポインターは、で使用される関数ポインターのシグネチャを持ち、特定の値にバインドされた追加の引数を使用しgて呼び出します。fHelper

スレッドセーフでもなく、設計の観点からも受け入れられない 3 つ目の解決策は、グローバル変数を使用することです。

私は見ましたがboost:bindstd::mem_funこれらの概念がこの設定で機能するかどうかはわかりません. 有益な回答と、このケースが通常どのように処理されるかについての背景を教えていただければ幸いです。

4

0 に答える 0