問題タブ [boost-bind]

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 投票する
2 に答える
1013 参照

c++ - boost::bind は厳密なエイリアシング規則に違反していますか?

Boost 1.43 と GCC 4.4.3 を使用して、次のコード

次の警告を生成します

boost/function/function_base.hpp:321: 警告: 型がパニングされたポインターを逆参照すると、厳密なエイリアス規則が破られる

-fno-strict-aliasing を設定せずにこれらの警告を取り除く正しい方法は何ですか?

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

boost - boost::bindの問題

次のコードは、次のファンクターオブジェクトを作成する行でエラーをスローしますTest::fun2

コンパイラは私に一連のテンプレートエラーと

これが主なエラーのようです。それにもかかわらず、私はここで何が問題であり、それをどのように解決するのか分かりません。

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

c++ - ブースト バインド テンプレート エラー

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

c++ - 関数へのポインタ

関数をポインターに渡す必要があります。この目的のために、boost::function を使用しています。ポインターをキャッチする関数は、さまざまなシグネチャに対してオーバーロードされます。例えば:

今、私はそこにいくつかのクラスメソッドポインタを渡したい:

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

c++ - ブーストshared_from_this<>()

shared_from_this<>()特にbind関数を使用してio_serviceにハンドラーを登録するという観点から、ブーストスマートポインターの使用方法を簡潔に要約できますか。

編集:いくつかの回答は、より多くの文脈を求めています。基本的に、私は「落とし穴」を探しています。これは、このメカニズムを使用して人々が観察した直感に反する動作です。

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

c++ - boost::bind と boost::lambda::new_ptr を使用して shared_ptr コンストラクターを返す

クラスAを考えると、

boost::function<boost::shared_ptr<A>(B&)>オブジェクトが必要です。

アドホック関数を作成したくない

私の問題を解決するために、lambda::new_ptr をバインドして解決しようとしています。

つまり、A の new_ptr と shared_ptr のコンストラクターを 2 つのステップでバインドします。明らかに機能しません:

代わりにバインディングを行うにはどうすればよいですか? 前もってありがとう、フランチェスコ

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

c++ - Boost.Bind - プレースホルダーを理解する

私は次の例を理解しようとしています。これは SOヘルプで以前に投稿されたものと似ていますが (等しくはありません)、boost::bind プレースホルダー引数を理解しています:

最も外側のバインド関数が、最初の引数を 2 番目のバインド ( を期待する_1) に渡し、2 番目の引数を 3 番目のバインド ( を期待する_2) に渡す必要があることをどのように認識できるのでしょうか? 私がこれを見る方法は、内側のバインダーが最初に評価されるため、それらは 2 つの単項関数オブジェクトになり、後でオブジェクトのバインダーに渡されるというless<int>ことです。そして、新しく作成された機能オブジェクトが 2 つのオブジェクトで呼び出されるとa、最初のインナー バインドにb移動し、2 番目のインナー バインドに移動します。私が正しければ、_12回使用します。私は間違っているに違いない。問題を明確にするために、もう一度質問を繰り返します。外側のバインダーは、どのプレースホルダーがどの内側のバインダーで使用されたかをどのように認識しますか?

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

c++ - std::for_eachとboost::bindを使用してパラメーターのメンバー関数を呼び出す方法は?

std :: for_eachを使用して、一連の文字列をコンボボックスに追加したいと思います。オブジェクトはタイプCategoryであり、私はそれらを呼び出す必要がありGetNameます。どうすればこれを達成できboost::bindますか?

現在のコードは、を呼び出そうとしているため失敗しますCComboBox::AddString(category)。これは明らかに間違っています。CComboBox::AddString(category.GetName())現在の構文を使用して呼び出すにはどうすればよいですか?

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

c++ - boost::bind内でブースト信号を使用する

boost::signalのトリガーをboost::bindオブジェクトにラップしようとしています。したがって、私が欲しいのは、boost :: functionが呼び出されたときに、いくつかの事前にパッケージ化された引数を使用してシグナルを呼び出すことです。

私が持っているのはこれです:

しかし、これは機能しません。次のエラーが発生します:エラー:bind(、..。の呼び出しに一致する関数がありません

私もこれを試しました:

しかし、「コンテキスト型情報のないオーバーロードされた関数のアドレス」を取得します。

では、これに適した構文は何ですか?

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

c++ - C++-バインディング関数

次のように記述された(ライブラリAPIなので、関数プロトタイプを変更できません)関数があります。

さて、私の実行のある瞬間に私はContext* local_context;変数を持っています、そしてこれも変更される可能性がありません。

boost::bind関数で使用したいのですが、ローカル変数FreeContextから取得する必要があります。ContextContext*

次のようにコードを書くと、コンパイラーはそれが「違法な間接参照」であると言います。


私はこの問題を次の方法で解決することができました。

しかし、この解決策は私にはあまり良くないようです。のようなものを使用してこれを解決する方法に関するアイデア*_1たぶん小さなラムダ関数を書いていますか?