問題タブ [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.
c++ - C++11: ソース内のラムダを関数オブジェクトに変換する
ラムダをサポートしていない古いコンパイラでビルドする必要がある C++11 コードのライブラリがあります。すべてのラムダを手作りの関数オブジェクトに手動で変更するのは現実的ではありません。
すべてのラムダを同等の関数クラスに自動的に抽出する、コンパイル前のステップとして実行できるツールを知っている人はいますか? おそらくclangのフロントエンドを使用できるかどうか疑問に思っていました。
c++ - ソートとマップをカスタマイズするとき、関数ポインタまたは関数オブジェクトを優先しますか?
C++でソートテンプレートとマップテンプレートをカスタマイズしたい
比較対象はこちら、
私のテストの後、Greater1 はマップで機能し、Greater2 はソートで機能します。また、CPLUSPLUS からいくつかの情報を取得したところ、 と map の両方が関数ポインターと関数オブジェクトの両方を使用する必要があることがわかりました。私の質問は、Greater2 がマップで機能し、Greater1 がソートで機能する理由です。
matlab - Matlab は関数オブジェクトをサポートしていますか?
Matlab スクリプトで使用する関数オブジェクト プログラミング手法にアクセスできるかどうかを調べようとしています。これは、 .NET の Func 型やPython の関数オブジェクトに似ています。Matlabは関数にファーストクラスのオブジェクトステータスを与えますか?
c++ - バインドされていない関数オブジェクトを使用して関数オブジェクトをインスタンス化すると、左辺値エラーが発生する
次の関数オブジェクトがあります。
次のように Wrapper オブジェクトをインスタンス化しようとすると:
私は得る
「エラー: 'const DOTf' (別名 'const DOTWrapper') の初期化に一致するコンストラクターがありません const DOTf dotf((NConv()), (LConv()));」
何故ですか?結局、NConv と LConv はメモリ内に場所があります...だから...それらは左辺値であるべきではありませんか?
c++ - 関数ポインタへの関数オブジェクトの変換
関数オブジェクトを関数ポインタに変換する方法を探しています。キャプチャレス ラムダには、次のことを可能にする暗黙的な変換があります。
私は次のような昔ながらの空のクラス関数オブジェクトで同じことをしようとしています:
またはstd::less<int>
.
私が見つけた 1 つの方法は、呼び出しfoo
をラムダでラップすることです。それがステートレスで const であることを保証できれば、このptr と lambda-capturefoo
は本当に必要ありません。
しかし、ここでは、完全な転送を提供する方法がわかりません。原因[](Args&&...)
または[](auto&&...)
変換できませんR(*)(Args...)
。args が のようにコピーできない場合、このようなトリックは失敗しますstd::unique_ptr<int>
。
を使用できることはわかっていますstd::function
が、軽量のソリューションを取得しようとしている間、それは一種の重量です。
実例。
アドバイスをいただければ幸いです。
javascript - new Function() を使用して文字列をオブジェクトに変換します - これはどのように機能しますか?
JSON.parse で文字列をオブジェクトに変換できませんでした。問題を解決するこのコードを見つけましたが、それがどのように機能するのかわかりません。誰かが (JavaScript の初心者に) 3 行目で何が起こっているのかを説明できれば幸いです。ありがとうございました。
c++ - テンプレート パラメーターとしての関数オブジェクト
これは、Essential c++ の例です。Comp
明らかに関数オブジェクトのクラス名です。Comp(val, _val)
を直接使用できるのはなぜですか? 通常は、最初に次のような関数オブジェクトを定義する必要があると思います: 、次にnotComp comp
を呼び出します。comp
Comp