問題タブ [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++ - 汎用ラムダの代わりに関数テンプレートを使用する場合は?
関数テンプレートを書くことができます:
しかし C++14 では、ジェネリック ラムダも作成できます。
内で直接f1
参照できますT
。内では、参照する必要はf2
ありませんT
が、次を使用して同じ効果を得ることができますdecltype
。
汎用ラムダの利点は、完全転送できることです。関数テンプレートではそれを行うことはできません:
関数テンプレートを使用する方が一般的なラムダを使用するよりも優れている状況はありますか?
c++ - このタプル作成イディオムの名前はありますか?
Boost メーリングリストで、タプルのようなエンティティを作成する次の巧妙なトリックが @LouisDionne によって最近投稿されました。
巧妙なのはlist
、ラムダが可変引数リストを入力として取り、入力に作用する別のラムダを取る出力としてラムダを返すことです。同様に、length
リストのようなエンティティを受け取るラムダであり、リストの元の入力パラメータに可変引数sizeof...
演算子を提供します。sizeof...
に渡すことができるように、演算子はラムダ内にラップされますlist
。
質問: このタプル作成イディオムの名前はありますか? おそらく、高階関数がより一般的に使用される関数型プログラミング言語からのものでしょう。
c++ - この自己適用階乗関数の型は何ですか?
C++ で無名階乗関数を作成し、コードを g++4.9.2 でコンパイルしました。それはうまくいきます。ただし、関数の型がわかりません。
それで、私は疑問に思います: と の型は何fac
ですかself
? C++ コードを Haskell に変換しただけでは、無限の型が含まれているためコンパイルできません。
そして、それを回避する再帰型の作業を定義する必要があります。
では、なぜ g++ は正確に正しい型のfac
関数を取得できるのでしょうか? また、g++ はその関数をどのような型だと考えているのfac
でしょうか?
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 のフラグを有効にするにはどうすればよいですか?
c++ - 汎用ラムダで SFINAE を使用する
ジェネリックラムダは「置換の失敗はエラーではない」ルールを利用できますか? 例
これを言語に含めるための回避策や計画はありますか? また、ジェネリックラムダは内部でテンプレート化された関数オブジェクトであるため、これができないのは少し奇妙ではありませんか?