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

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

c++ - Visual Studio 2008 SP1 で std::tr1::mem_fun を使用するにはどうすればよいですか?

VS2008 SP1のドキュメントでは、std::tr1::mem_fun.

では、なぜ、 を使用しようとするとstd::tr1::mem_fun、このコンパイル エラーが発生するのでしょうか?:

同時に、std::tr1::function問題なく使用できます。

コンパイルしようとしているサンプルコードは次のとおりです。これは、のインスタンスを呼び出すことになっていTakesIntますTestfunction<void (int)>

mem_fun私のコードを使用std::mem_funしてもコンパイルされないため、私は の tr1 バージョンを使用しようとしています! 問題が私のコードにあるのか、それとも tr1 のmem_fun. これは C++ コンパイラ エラーです (または、私だけかもしれません!)。


更新:そうですね。答えは mem_fn! と正しく綴ることです。

ただし、それを修正しても、コードはまだコンパイルされません。

コンパイラエラーは次のとおりです。

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

c# - C ++ mem_funと同等のC#?

C#で次のようなことをしたいのですが。

C ++では、std::mem_funのようなものを使用します。C#でどのように実行しますか?

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

c++ - mem_fun と bind1st の問題

私は次のクラスを持っています:

さて、私はvector<A*> availableObjsすでに移入しています。私はそれらのそれぞれを呼び出したいので、クローンされたオブジェクトを typecloneの新しいコンテナに挿入します。私は次のことを試みていますが、コンパイルされません:clonedObjsvector<A*>

簡単な方法はありますか?私は多くのことを A のように分類してきました。そのため、これらのそれぞれをファンクタにするのは大変な作業です。

0 投票する
5 に答える
833 参照

c++ - 2つのパラメータでmemfunを使用する方法

この関数「EnumWindows(EnumWindowsProc、NULL);」を使用したい。EnumWindowsProcはコールバック関数です。

このコールバックでは、クラスのメンバー関数を使用します。

例えば:

だから私は呼び出されたコールバックを私の関数にバインドしたいです!!!

私はこれを試してみます:

それは機能しません、「mem_fun」は1つの引数しか取ることができません!それを行うことは可能ですか?そうでなければあなたは別の解決策を知っていますか?(たぶん、Boost :: bindで解決策が可能になるでしょう)

0 投票する
4 に答える
9159 参照

c++ - bind1st と mem_fun でメンバー関数を参照する

std::bind1st を使用してメンバー関数を「this」パラメーターにバインドしようとしている C++ クラスがあります。例えば:

最後の「bind1st」行を追加すると、次のコンパイラ エラーが発生します。

標準ライブラリの実装に STLPort v5.2.1 を使用しています。

通常は、boost::bind に切り替えて使用します。残念ながら、それはこのアプリケーションでは可能ではありません。

探している機能を取得するにはどうすればよいですか?

ありがとう、ポールH


編集:より明確にするために、単項関数を、パラメーターを取らない関数と呼ぶものに適応させる方法を探しています。に「バインド」thisしたいMyClass::Bar

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

c++ - std::vectorを使用する::push_backとstd::mem_funおよびstd::bind1st

とで使おうとしてstd::vector<T*>::push_backい ますが、実現可能ではないようですが、できますか?std::mem_funstd::binder1st

私は以下のコードで例示しようとしました。

私の目標は、選択したアイテム(「A」オブジェクトまたは「A」派生オブジェクト)をパラメーターとして受け取る関数を実行するように指示できるコンテナークラスを作成することです。しかし、私はそれをなんとか使用std::vector::push_packすることができませんでした。

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

c++ - mem_funを標準コンテナに保存する

を作成する方法はありますvector< mem_fun_t< ReturnType, MyClass > >か?

私が見ているエラーは次のとおりです。

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

c++ - C++ for_each でメンバー コンテナー内のアイテムのメンバー関数を呼び出すには

次のようなクラス(STLのコンテナの一部を模倣する)がある場合:

「cont_」内のすべての要素に対して prepare() を呼び出したい場合は、次の関数を作成できます。

私の質問は、「cont_」のすべての要素に対して Selector::prepare_elem() を呼び出したい場合はどうすればよいですか? 私の最初のアプローチはコンパイルされません:

2 番目のアプローチも失敗しました。

std::for_each() を使用して Selector::prepare_elem() を呼び出す方法はありますか?

方法があれば、ブーストなしの解決策を知りたいです。

0 投票する
4 に答える
1113 参照

c++ - STLfor_eachが引数リストについて不平を言っている

宿題の一環として、マップ内の各文字の出現をマップすることになっています。この関数は、std :: for_eachを使用して、評価する文字を渡すことになっています。

私の機能は次のとおりです。

document_は、stringであり、fillMap関数は次のように定義されます。

chars_として宣言されstd::map<char, unsigned int> chars_;ます。

これはうまくいくはずだと思いますが、コンパイラは文句を言っています

引数リストを見ると混乱します

それは私にはうまく見えます。_Elemはcharであり、私の関数はcharを受け入れます。イテレータは他の何物でもありませんchar *

私は何が間違っているのですか?

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

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&]