私は C++11 で小さな数学的最適化フレームワークに取り組んでいます。ユーザーがドメイン固有のロジックを提供するための最良の方法は何だろうと思います。フレームワークから呼び出すことができるフック メソッドを使用してクラスを定義するよう彼女に強制することもできますが、私はフレームワークをスリムに保ち、できる限り新しい C++11 機能を活用したいと考えています。そこでstd::function
、おそらくラムダ式からインスタンス化されたオブジェクトをパラメーターとして受け入れ、必要に応じて呼び出すことを考えています。私が疑問に思っている唯一のことは、コンパイラ (私の場合は gcc ですが、Xcode と Visual C++ についても知りたいです) が std::function オブジェクトを取り、関数定義をインライン化できるかどうかです。コードの残りの部分と一緒に最適化されるようにします。
PS: コメントから、私の質問の最初のリビジョンはほとんどのユーザーにとって不明瞭だったようです。おそらく、間違った言語を使用した私のせいです。ここで伝えようとしている概念を誰かが理解してくれることを願っています (そしておそらく解決策を提案します)。
PPS: 誰かがテンプレートの使用を提案しました。これは私が考えたアイデアですが、代替案があるかどうか知りたいです。テンプレートに反対するものは何もありませんが、動的オブジェクトの観点から推論する方が簡単であるため、これが機能するようになり次第、テンプレート ベースのバージョンを作成する予定です。