問題タブ [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.

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

c++ - 汎用ラムダの代わりに関数テンプレートを使用する場合は?

関数テンプレートを書くことができます:

しかし C++14 では、ジェネリック ラムダも作成できます。

内で直接f1参照できますT。内では、参照する必要はf2ありませんTが、次を使用して同じ効果を得ることができますdecltype

汎用ラムダの利点は、完全転送できることです。関数テンプレートではそれを行うことはできません:

関数テンプレートを使用する方が一般的なラムダを使用するよりも優れている状況はありますか?

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

c++ - このタプル作成イディオムの名前はありますか?

Boost メーリングリストで、タプルのようなエンティティを作成する次の巧妙なトリックが @LouisDionne によって最近投稿されました。

ライブの例

巧妙なのはlist、ラムダが可変引数リストを入力として取り、入力に作用する別のラムダを取る出力としてラムダを返すことです。同様に、lengthリストのようなエンティティを受け取るラムダであり、リストの元の入力パラメータに可変引数sizeof...演算子を提供します。sizeof...に渡すことができるように、演算子はラムダ内にラップされますlist

質問: このタプル作成イディオムの名前はありますか? おそらく、高階関数がより一般的に使用される関数型プログラミング言語からのものでしょう。

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

c++ - この自己適用階乗関数の型は何ですか?

C++ で無名階乗関数を作成し、コードを g++4.9.2 でコンパイルしました。それはうまくいきます。ただし、関数の型がわかりません。

それで、私は疑問に思います: と の型は何facですかself? C++ コードを Haskell に変換しただけでは、無限の型が含まれているためコンパイルできません。

そして、それを回避する再帰型の作業を定義する必要があります。

では、なぜ g++ は正確に正しい型のfac関数を取得できるのでしょうか? また、g++ はその関数をどのような型だと考えているのfacでしょうか?

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

c++ - Code::Blocks で `-std=c++14` フラグを有効にする

Code::Blocks for Windows をインストールしましたが、C++14 コードをジェネリック ラムダのようにコンパイルしたいのですが、codeblocks.orgからインストールしたバイナリ バージョンの Code::Blocksは flag をサポートしていません
-std=c++14

-std=c++14コンパイラを更新して Code::Blocks のフラグを有効にするにはどうすればよいですか?

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

c++ - 汎用ラムダで SFINAE を使用する

ジェネリックラムダは「置換の失敗はエラーではない」ルールを利用できますか? 例

これを言語に含めるための回避策や計画はありますか? また、ジェネリックラムダは内部でテンプレート化された関数オブジェクトであるため、これができないのは少し奇妙ではありませんか?