問題タブ [function-object]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
7230 参照

c++ - 呼び出し可能なオブジェクトをパラメーターとして機能させる方法

C ++標準ライブラリでは、ほとんどすべてのalgo関数が呼び出し可能なオブジェクトを引数として取ります。今、私は自分のプログラムでこれを試してみたいと思います。find_iforのような関数のヘッダーを開きましたが、search_n()これらの呼び出し可能なオブジェクトパラメーターがどのように処理されるか、そしてもちろん、特にラムダオブジェクトの引数がどのようにそれらに渡されるかについてはあまり理解できませんでした(ラムダbind()に使用できます、わかりません)


誰かが私にこのことがどのように機能するかを説明できますか?前もって感謝します

0 投票する
4 に答える
634 参照

c++ - 述語と関数オブジェクトはどこで定義しますか?

私の質問は純粋に組織的な性質のものであり、したがって、潜在的な答えは本質的に主観的なものである可能性があることを認識しています。何年にもわたってC#で作業した後、私はついにC ++に戻り、ファイルを適切に整理する方法に慣れるのに苦労しています。

基本的に、述語と関数オブジェクトを定義するのに最適な場所を知りたいです。現在、単一のクラスでSTLアルゴリズムに単純な関数オブジェクトを使用しています。この関数オブジェクトは他のクラスには役に立たないので、どこに置くのですか?同じ名前空間とヘッダーファイルまたは.cppファイルに配置しますか?匿名の名前空間に配置しますか、それとも独自のヘッダー/ cppファイルに配置しますか?

ありとあらゆる回答をよろしくお願いします。

ケビン

0 投票する
1 に答える
126 参照

c++ - C++のstdoutを持つ関数オブジェクト

coutがない場合、プログラムは正しく実行されます。なぜ?出力キャッシュに何か問題がありますか?

0 投票する
1 に答える
566 参照

c++ - C ++関数オブジェクトに参照型のメンバー変数が必要なのはなぜですか?

これは初心者のC++の質問です。ウィキペディアの「関数オブジェクト」の記事を読んでいました。この記事には、次のようなC++の例があります。

2つの質問があります:

  1. countが参照型ではなく通常の変数であるのに、なぜコンパイルに失敗するのですか?デモ

  2. コンパイルに失敗するのはなぜですか?次のように変更しctorますか?デモ

    printClass(int &n) { count = n; }

ありがとう。

編集:説明してくれてありがとう。次のバージョンも機能するようです。お互いを選ぶ理由はありますか?

編集:iammilindの返信に基づいて、これはを使用しても機能する3番目のバージョンですconst_cast<int &>

0 投票する
3 に答える
297 参照

c++ - C ++でデリゲートのコレクションを作成する慣用的な方法はありますか?

次のようなことを行うために、同様のシグネチャを持つ関数をコレクションに格納したいと思います。

私は関数ポインタについて考えました:

またはポリモーフィック関数オブジェクト:

0 投票する
1 に答える
533 参照

c++ - C++関数オブジェクトはstd::for_each(VS2012)を使用して合計を作成できません

VisualStudio2012で関数オブジェクトを使用できません。

単純なものを作成しstd::vector、0〜9を追加しintsて、関数オブジェクトを使用してその合計を作成したいと思いました。私のクラス定義(インライン):

私の主な機能:

デストラクタからの出力を使用して、次のようになります。

これはVSのバグですか?デバッガーを使用して実行すると、項目が合計されます45が、その直後にデストラクタが呼び出されます。私は何が間違っているのですか?

編集:

これは、StroustrupのThe C++ Programming Language18.4章の例です。正確にコピーしたので、うまくいかなかったのではないかと思いました。

0 投票する
1 に答える
412 参照

c++ - Elementメンバー関数とSTLのみを使用して、コンテナ内のElementのメンバー関数から結果を蓄積する方法は?

要素のコンテナーがあり、各要素にはsize()メンバー関数があります。二項演算を記述して、コンテナー要素の合計サイズを累積することができましたadd_size

これにより、正しい出力が得られます。

私が望むのは、サイズ メンバー関数のためだけに二項演算を定義せずに、mem_fun とバインダーを使用してそれを行うことです。add_sizeどうやってやるの?どうすれば効果的にそれを行うことができますか? 私はから始めてadd_element行き詰まりました。

C++03 で動作するソリューションが必要です。

0 投票する
6 に答える
1950 参照

c++ - 関数オブジェクトを再帰的に呼び出す

関数オブジェクトをそれ自体から呼び出すにはどうすればよいですか? 使えないようthisです。例:

何に配置し??ますか?

0 投票する
1 に答える
284 参照

python - Pythonの関数デコレータは、装飾された関数を暗黙的に呼び出しますか?

私のタイトルは誤解を招く可能性があります。私の質問は、このコード スニペットから来ています。

上記のコードを実行すると、次のような出力が得られます

ただし、出力は

関数を装飾するだけで、コンストラクターを呼び出して myDecorator オブジェクトをaFunction()実行します。なぜそうなのですか?

デコレータに関する別の質問:

このリンクは、デコレータを次のように説明しています@ is just a little syntax sugar meaning "pass a function object through another function and assign the result to the original function.

これが参照する関数オブジェクト、別の関数、および元の関数は何ですか?