問題タブ [bind2nd]
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.
haskell - C++ の std::bind2nd に相当する組み込みの Haskell はありますか?
私が見逃しているのは、関数の最初の引数ではなく、2 番目の引数を部分的に適用する機能です。これは、関数をマップなどに渡したい場合に特に便利ですが、毎回ラムダを記述する必要はありません。
私はこれのために私自身の関数を書きました(以下の定義、実際にこれのための組み込み関数がなく、他の誰かが興味を持っていた場合に備えて)、これのためのプレリュードにすでに何かが存在するかどうかを本当に知りたいです私は再発明するよりも再利用したいので、イディオムです。
これが私の定義と簡単な例です。
c++ - バインダーとbind2ndファンクターの使い方は?
bind2nd、bind2nd、bind1stの使い方は?より具体的には、いつそれらを使用するのか、そしてそれらは必要ですか?また、私はいくつかの例を探しています。
c++ - C++bind2番目の質問
これは私の最終試験で出題された質問の1つでした。何をすべきかわからない。BindSecArgには()演算子が必要ですが、何が入っているのかわかりません。
この質問では、std::bind2ndに似たものを実装する必要があります。簡単にするために、mainは「for」ループを使用して記述されていますが、「foreach」およびSTLコンテナーで書き換えることができます。
追加のクレジットの質問:あなたの実装はおそらくうまくいきません(これはOKです!)
STLはこの問題をどのように解決しますか?
c++ - boost::bind を bind1st/2nd に置き換えることはできますか?
理解を深めるために、次の例の boost::bind への呼び出しを std::bind1st/2nd に置き換えてもよろしいですか? それとも、参照を返すために不可能ですか?
例(短縮):
c++ - オブジェクトのポインターのベクトルに対する STL アルゴリズムの使用 (C++)
ポインターの配列のオブジェクトが、メンバー関数に指定されたパラメーターと同じ名前 (メンバー変数) を持つ回数を数える必要があります。さまざまなアプローチを試しましたが、どれもうまくいきませんでした。私のコードはコンパイルさえしません。エラーは次のとおりです:「エラー C2514: 'MyComparator': クラスにコンストラクターがありません」。比較に使用するクラスのコードと、同時実行数のカウントに使用する関数を次に示します。
私はこれに何時間も苦労しており、STLを使用してやりたいと思っています。ここでのキャッチは、ポインターのベクトルがあることです。通常のベクトルがあれば、述語関数は必要ありません。私の場合、それにパラメーターを与える必要があり、bind2nd() が正しい方法だと思います。どんな助けでも大歓迎です!
c++ - コンテナー内のオブジェクトごとに 1 つのパラメーター (バインド) を使用してメンバー関数を呼び出す
私は
とCoil
の基本クラスでCilCoil
ありRectCoil
、それぞれ円筒形コイルと長方形コイルです。ここで、指している incalcField
ごとにメンバー関数を呼び出したいと思います。このメンバー関数は、基本クラスでは純粋に仮想ですが、派生クラスで実装されており、その宣言は次のようになります。Coil
Coils
Root ライブラリのTVector3
3D ベクター クラスです。Coil
ここでのアイデアは、すべてのフィールドを計算し、Coils
それらを合計することです。(つまり、フィールドを計算する位置へのベクトル)の引数はcalcField
すべての呼び出しで同じになるため、<algorithm>
or<numeric>
ヘッダーからSTLアルゴリズムを使用して、次のようなことをしたいと思います(想像):
明らかに、私は質問をするためにここにいるので、これはうまくいかないようです。したがって、私の質問は非常に簡単に言えば、なぜこれが機能しないのか、および/または正しい方法で (STL の制限内で) どうすればよいのでしょうか?
上記をコンパイルしようとすると、次のエラー メッセージが表示されます (作業中のファイルは Interface.cpp と呼ばれ、サードパーティ コードです)。
c++ - bind2nd()を使用した奇妙なコンパイラエラー:「参照への参照」の代わりに「メンバー関数はすでに定義または宣言されています」
func()
私は最近、このコードを呼び出すときにエラーメッセージを理解するのにかなりの時間を費やしました。
そのように宣言されたときfunc()
、コードは正常にコンパイルされました:
この宣言を(効率のために)使用すると、コンパイラエラーが発生しました:
私が予想したエラーは、binder2ndのoperator()の定義のために、参照から参照へのエラーのようなものでした。
代わりに、驚いたことに、Visual C ++(VS2012)コンパイラによって発生したエラーは次のとおりです。
エラーC2535:'void std :: binary2nd <_Fn2> :: operator()(const std :: vector <_Ty>&)const':メンバー関数はすでに定義または宣言されています
解読できません。
- どのメカニズム
operator()
ですでに定義されているか説明できますか?
私が得た完全なエラーは次のとおりです。
c++ - ユーザー定義クラスの Bind2nd の問題
ユーザー定義クラスで bind2nd を使用する方法を学習しようとしていますが、他のリソースを調べて支援を求めたにもかかわらず、修正方法がわからないというエラーが表示されます。
助けていただければ幸いです、ありがとう。
main.cpp
c++ - bind1st と bind2nd から return ファンクターを直接呼び出す
bind1st と bind2nd の戻り値は unary_function から派生します。それらを呼び出すことで、1 つの引数を受け取る関数オブジェクトが提供されると思います。しかし、これはおそらく間違っています。
これが私のコードです。
ビルドエラーが多く発生します。なぜこれが間違っているのですか?