問題タブ [mem-fun]
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++ - Visual Studio 2008 SP1 で std::tr1::mem_fun を使用するにはどうすればよいですか?
VS2008 SP1のドキュメントでは、std::tr1::mem_fun
.
では、なぜ、 を使用しようとするとstd::tr1::mem_fun
、このコンパイル エラーが発生するのでしょうか?:
同時に、std::tr1::function
問題なく使用できます。
コンパイルしようとしているサンプルコードは次のとおりです。これは、のインスタンスを呼び出すことになっていTakesInt
ますTest
。function<void (int)>
mem_fun
私のコードを使用std::mem_fun
してもコンパイルされないため、私は の tr1 バージョンを使用しようとしています! 問題が私のコードにあるのか、それとも tr1 のmem_fun
. これは C++ コンパイラ エラーです (または、私だけかもしれません!)。
更新:そうですね。答えは mem_fn! と正しく綴ることです。
ただし、それを修正しても、コードはまだコンパイルされません。
コンパイラエラーは次のとおりです。
c# - C ++ mem_funと同等のC#?
C#で次のようなことをしたいのですが。
C ++では、std::mem_funのようなものを使用します。C#でどのように実行しますか?
c++ - mem_fun と bind1st の問題
私は次のクラスを持っています:
さて、私はvector<A*> availableObjs
すでに移入しています。私はそれらのそれぞれを呼び出したいので、クローンされたオブジェクトを typeclone
の新しいコンテナに挿入します。私は次のことを試みていますが、コンパイルされません:clonedObjs
vector<A*>
簡単な方法はありますか?私は多くのことを A のように分類してきました。そのため、これらのそれぞれをファンクタにするのは大変な作業です。
c++ - 2つのパラメータでmemfunを使用する方法
この関数「EnumWindows(EnumWindowsProc、NULL);」を使用したい。EnumWindowsProcはコールバック関数です。
このコールバックでは、クラスのメンバー関数を使用します。
例えば:
だから私は呼び出されたコールバックを私の関数にバインドしたいです!!!
私はこれを試してみます:
それは機能しません、「mem_fun」は1つの引数しか取ることができません!それを行うことは可能ですか?そうでなければあなたは別の解決策を知っていますか?(たぶん、Boost :: bindで解決策が可能になるでしょう)
c++ - bind1st と mem_fun でメンバー関数を参照する
std::bind1st を使用してメンバー関数を「this」パラメーターにバインドしようとしている C++ クラスがあります。例えば:
最後の「bind1st」行を追加すると、次のコンパイラ エラーが発生します。
標準ライブラリの実装に STLPort v5.2.1 を使用しています。
通常は、boost::bind に切り替えて使用します。残念ながら、それはこのアプリケーションでは可能ではありません。
探している機能を取得するにはどうすればよいですか?
ありがとう、ポールH
編集:より明確にするために、単項関数を、パラメーターを取らない関数と呼ぶものに適応させる方法を探しています。に「バインド」this
したいMyClass::Bar
。
c++ - std::vectorを使用する::push_backとstd::mem_funおよびstd::bind1st
とで使おうとしてstd::vector<T*>::push_back
い ますが、実現可能ではないようですが、できますか?std::mem_fun
std::binder1st
私は以下のコードで例示しようとしました。
私の目標は、選択したアイテム(「A」オブジェクトまたは「A」派生オブジェクト)をパラメーターとして受け取る関数を実行するように指示できるコンテナークラスを作成することです。しかし、私はそれをなんとか使用std::vector::push_pack
することができませんでした。
c++ - mem_funを標準コンテナに保存する
を作成する方法はありますvector< mem_fun_t< ReturnType, MyClass > >
か?
私が見ているエラーは次のとおりです。
c++ - C++ for_each でメンバー コンテナー内のアイテムのメンバー関数を呼び出すには
次のようなクラス(STLのコンテナの一部を模倣する)がある場合:
「cont_」内のすべての要素に対して prepare() を呼び出したい場合は、次の関数を作成できます。
私の質問は、「cont_」のすべての要素に対して Selector::prepare_elem() を呼び出したい場合はどうすればよいですか? 私の最初のアプローチはコンパイルされません:
2 番目のアプローチも失敗しました。
std::for_each() を使用して Selector::prepare_elem() を呼び出す方法はありますか?
方法があれば、ブーストなしの解決策を知りたいです。
c++ - STLfor_eachが引数リストについて不平を言っている
宿題の一環として、マップ内の各文字の出現をマップすることになっています。この関数は、std :: for_eachを使用して、評価する文字を渡すことになっています。
私の機能は次のとおりです。
document_
は、string
であり、fillMap関数は次のように定義されます。
chars_
として宣言されstd::map<char, unsigned int> chars_;
ます。
これはうまくいくはずだと思いますが、コンパイラは文句を言っています
引数リストを見ると混乱します
それは私にはうまく見えます。_Elemはcharであり、私の関数はcharを受け入れます。イテレータは他の何物でもありませんchar *
私は何が間違っているのですか?
c++ - std::mem_fun_ref 問題: メンバー関数として呼び出されたときに壊れたファンクターとして機能する
問題は、以下のコード スニペットのコンパイラ エラーです。
以下は、ランダムな整数でリストを埋め、各要素をインクリメントする非常に単純なプログラムです。ファンクターへの std::for_each 呼び出しを使用して、コレクションの各メンバーをインクリメントし、すべてコンパイルします。main() の for_each に注目してください。次に、ファンクタ Increment ではなく、List::increment を呼び出すように for_each を単純に変更します (main のコメント アウトされたコードに注目してください)。このタスクでは mem_fun_ref を使用します。これは、ポインタのコレクションではなくクラスのコレクションを扱っているためです。また、bind1st や bind2nd は必要ないと思います。
これが私のコンパイラエラーです:
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/stl_algo.h: 関数 _Function 内 std::for_each(_InputIterator, _InputIterator, _Function) [with _InputIterator = std::_List_iterator, _Function = std::mem_fun1_ref_t]': blahblah.cpp:53: ここからインスタンス化
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/stl_algo.h:158: エラー: (std::mem_fun1_ref_t) の呼び出しに一致しません (unsigned int&)'
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/stl_function.h:826: 注: 候補は: void std::mem_fun1_ref_t::operator()(_Tp&, _Arg) const [ with _Tp = List, _Arg = unsigned int&]