std-function

    2

    3答えて

    std :: functionから派生したオブジェクトを別の関数に参照渡しすると、プログラムは実行時にbad_function_callエラーで常にクラッシュします。次のコードのよう: #include<functional> #include<iostream> class foo :public std::function<int(void)> { public:

    3

    2答えて

    std::functionは移動可能ですが、場合によっては利用できない場合もあります。それをコピーするための重大なペナルティはありますか? キャプチャされた変数のサイズ(ラムダ式を使用して作成された場合)に依存する可能性はありますか?それは実装に依存しますか?

    0

    2答えて

    次のコードはセグメンテーションフォールトを示しています。それをデバッグした後、関数ではなくラムダをautoと宣言することで問題を解決できることがわかりました。それはなぜですか? #include <functional> #include <iostream> #include <vector> typedef std::vector<double> Vec; typedef std::

    0

    1答えて

    私は、次のしている:クラスCのboost::signal2に クラスBリッスンをし、トリガークラスAによって与えられたコールバックを実行し、それはクラスのメソッドを実行しますA A、BとC、Dはすべてstd::shared_ptrです。 問題は、クラスDがクラスBへのポインタを離したとき、Bが原因でシグナルハンドラの削除されていないことです。私がboost::connectionの切断を呼び出して

    2

    1答えて

    Visual Studio(2015)でこの非常に簡単な例を実行します。 何らかの理由でFunctorクラスのデストラクタが4回呼び出されます。 実装が自動生成されたコピーコンストラクタを数回呼び出すと仮定しますが、ここにバグがある可能性があります。コピーコンストラクタを自分で実装すると、1つのデフォルトのコンストラクタ呼び出しと2つのコピーコンストラクタ呼び出しに対応するデストラクタ呼び出しが3

    4

    2答えて

    次のコードは、コンパイル時に一致するstd :: functionコンストラクタを呼び出さないためコンパイルされません。 しかし、上記の例で期待されているのと同じ(または同様の)機能を提供することは可能ですか?呼び出し可能な関数を受け入れるエレガントな方法はありますか? invoke([](int x) -> int { return x/2; }, 100); //Should return i

    1

    2答えて

    私は多くの機能の引数としてstd::function<>を使用する複雑なフレームワークに取り組んでいます。プロファイリングすることで、次のパフォーマンス上の問題のいずれかが見つかりました。 誰かがなぜLoop3aがとても遅いのか説明できますか?私は、インライン展開が使用され、時間は同じになると予想しました。アセンブリでも同じです。パフォーマンスや方法を改善する方法はありますか? C++ 17はその

    2

    3答えて

    以下のコードを単純化するにはどうすればよいですか?ここでタプルを使用するのは可能でしょうか?はいの場合は、どのように説明することができます。テンプレートの実装で template<typename Out, typename T1, typename T2, typename T3, typename T4> void ProcessIncomingCommand(PClientContext

    0

    1答えて

    コールバックの関数にラムダ関数を渡したいだけです。コールバックにはstd::functionを使用しています。私はこの関数にデータを渡す必要があり、これが問題に遭遇しています。 "期待された型に変換できません"というエラーのコード。目的は、SDLのイベントに対してコールバックを使用することです。これを行うことについてこれが正しい方法であるかどうかはわかりません。私はとvectorのstd::fun

    1

    3答えて

    次のコードでは、dataという変数があります。後で呼び出すために内部に関数を保持しています。 dataが別のライブラリで定義されており、そのタイプを変更できないとしましょう。私は、この関数の一部がわかっている(s3)、呼び出されたときにその部分を与えなければならないテンプレート関数を各メンバーに割り当てます(true)。 data[0]=test_func(?,s3); // error 代わ