問題タブ [stdbind]
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++ でメンバ関数をオブジェクト インスタンスにバインドする関数
最近、メンバー関数をオブジェクトのインスタンスにバインドすることがよくあります。std::bind、std::mem_fn、および std::ref を組み合わせて使用するのではなく、これらすべてを 1 つの関数に組み合わせて、すべてを自動的に処理したいと考えています。
たとえば、次のコードを考えてみましょう。
私の obj_bind 関数は実際には引数のないメンバー関数でうまく動作するので、私の問題はそれらの処理方法にあると確信していますが、修正に何度か失敗した後、ここでアドバイスを求めてみようと思いました.
c++ - std::bind を使用して std::string メソッドを呼び出す
std::bind を使用して std::string メソッド メンバーを呼び出す必要があります。次のことを試しましたが、エラーが発生しました。
エラー:
bind を使用して std::string からメソッドを呼び出す方法を知りたいです。
c++ - Clang: string::c_str および transform で bind または mem_fn を使用する際の問題
std::string のベクトルを const char* のベクトルに変換しようとしています:
g++ (4.7.2) でコンパイルすると、3 つのオプションすべてが正常にコンパイルおよびリンクされます。clang でコンパイルすると、オプション 1 と 2 がリンクに失敗し、次のようになります。
g++ と clang の両方を使用してプラットフォーム間で正しくリンクするには、ラムダ バージョン (オプション 3) を使用する必要があることがわかりました。リンカーのバグや、clang の C++11 サポートの穴に遭遇したのでしょうか、それとも mem_fn() および bind() バージョンの呼び出し方法に何か問題がありますか?
編集:
最新の Xcode (6.3.2、clang バージョン 6.1.0:
c++ - 機能: 用語は機能上のエラーを評価しません 1149
これのエラーがわかりません。std::function
s を使用してメンバー関数を引数として渡そうとしています。4番目と最後のケースを除いて、正常に動作します。
の最初の 3 つの使用法ではエラーはありませんがstd::function
、最終的な使用法では次のようになります。
Error 1 error C2064: term does not evaluate to a function taking 0 arguments
の1149行目functional
。
他のすべてのものを取り出し、さまざまな組み合わせで問題を引き起こしたのはそれだけだったので、エラーが回線で発生していることだけを知っています。
c++ - std::bind が無効な間接エラーを引き起こす
SFML ゲーム開発の本を読んでいますが、std::bind で問題が発生しました。解決策を探しましたが、他の人も同様の問題を抱えているようです。ただし、この特定の問題に対する解決策はまだ見つかりませんでした。これが私のコードです:
DataTables.hpp
データテーブル.cpp
Entity.hpp
エンティティ.cpp
航空機.hpp
航空機.cpp
ピックアップ.hpp
ピックアップ.cpp
そして、ここにエラーがあります:
可能な解決策は大歓迎です。
c++ - std::function にプレースホルダーを使用してバインドの結果を格納する
通常の関数で std::bind を実行する方法を読んでいます。そして、フリー関数またはメンバー関数を std::function に格納します。ただし、一方の引数にプレースホルダーを使用し、もう一方の引数に実際の値を使用しようとすると; std::function を呼び出すことができません (コンパイル エラーが発生します)。
そこで、次のコードを試しました。
次のエラー g++ 4.7 が表示されます
c++ - オブジェクトを削除し、std::function を介してそのメソッドを呼び出します。できます!しかし、なぜ?
このコード スニペットを実行して、問題をテストします。
そして、出力を得ました:
オブジェクトを削除した後にオブジェクトメソッドを呼び出すことができる理由を説明してくれる人はいますか?