問題タブ [generic-lambda]
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++ - ネストされたラムダ式を理解する
私の質問は、ラムダ式の下に例として示されている、次のネストされたラムダ式に関するものです。
以下は、上記の式を解釈する方法です。
式では
クロージャ オブジェクトは、型がラムダ式に対応するvglambda
クロージャ オブジェクトで初期化されますprinter
内部printer
では、ネストされた (匿名の) ラムダ式
コピーによるキャプチャーprinter
とそのパラメーターパックをrvalue
参考に。
(無名) ラムダ式の本体内で、式
パラメータパックを[基本的にusingprinter
の呼び出しのように見える]に転送しますprinter
operator ()
(匿名) ラムダ式の本体内の最後の式では、(匿名) nullary ラムダ式がprinter
、パラメーター パックと共に、コピーによって外側のスコープからクロージャー オブジェクトをキャプチャするように見えprinter
、転送されたパラメーターを使用してクロージャー オブジェクトを呼び出します。パック。
今、私がここで何かを得ていないことは非常に明白です. 本質的に、printer
クロージャー オブジェクトを呼び出す 2 つの異なる行が (匿名の) ラムダ式の本体内に提供されているのはなぜですか?
専門家の誰かがもっと光を当てることができますか?
c++ - ラムダの戻り値の型を推測する方法は?
map()
RubyのメソッドをC++で真似したい。戻り値の型を自動的に把握するのに苦労しています:
このようにコンパイルされますが、T2
に固定されていstring
ます。他のT2
定義を使用すると、コンパイラは文句を言いcouldn't deduce template parameter 'T2'
ます。も使用しようとしましstd::declval
たが、おそらく正しい方法ではありません。問題を解決できませんでした。