std :: bindをstd :: functionおよびstd :: mapと一緒に使用する方法

アンキットアガーワル

std :: functionのマップを作成してから、いくつかのパラメーターをバインドしようとしていますが、エラーが発生します。だから、私のstd :: functionの定義は

using abc = std::function<double(const double& t1, const double& t2)>;

そして地図は

std::map<std::pair<std::string, std::string>, abc> conversion_;

私がこの地図に挿入しようとしている方法は

conversion_.emplace(
            std::make_pair("a", "b"),
            std::bind(conversion, 3, std::placeholders::_1));

conversion_.find(std::make_pair("a", "b"))->second(4); -- Access

関数変換を定義しましたが、関数にアクセスしようとすると、以下のエラーが発生します

 error: no match for call to ‘(const std::function<double(const double&, const double&)>) (int)’

完全なコードの追加:変換関数は別のファイルで定義されています:

namespace x
{
    double conversion(const double& a, const double& b);
}

マップを定義しようとしているヘッダーファイル

namespace x
{
    class main 
    {
    public:
        using abc = std::function<double(const double& t1, const double& t2)>;
        main();
    private:
        std::map<std::pair<std::string, std::string>, abc> conversion_;
    };
}

CPPファイル

namespace x
{
main::main() 
{
    conversion_.emplace(
        std::make_pair("a", "b"),
        std::bind(conversion, 3, std::placeholders::_1));
    auto m = conversion_.find(std::make_pair("a", "b"))->second(4);
}
}   
phyxnj

conversionとして機能してdouble(const double& t1, const double& t2)いると思いますその場合、std::bind(conversion, 3, std::placeholders::_1)1つの引数a doubleのもう1つの引数conversionはとして固定3を必要とするファンクターを定義し、を返しdoubleます。あなただけ変更する必要abcstd::function<double(const double& t1)>;

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

std :: functionおよびstd :: bindでC ++テンプレートを使用する

分類Dev

std :: bindおよびstd :: function with polymorphism、base class

分類Dev

std :: bindおよびstd :: functionを使用すると、コールバックが失敗します

分類Dev

C ++ 11:継承でstd :: mem_fnおよびstd :: bindを使用する方法

分類Dev

std :: applyをstd :: bindに使用する

分類Dev

std :: functionおよびstd :: bind:それらは何であり、いつ使用する必要がありますか?

分類Dev

std :: bindおよびstd :: weak_ptr

分類Dev

std :: sscanfおよびstd :: stringを使用するC ++

分類Dev

パラメータを使用したvoidメソッドをstd :: functionおよびstd :: bind C ++を使用した別のメソッドに渡す

分類Dev

std :: bindおよびstd :: placeholdersを使用する可変個引数テンプレートファクトリ

分類Dev

std :: functionおよびstd :: bindの戻り値

分類Dev

constクラスオブジェクトをstd :: functionおよびstd :: bindに渡すとコンパイルエラーが発生します

分類Dev

std :: mapおよびstd :: variantを含む不完全な型

分類Dev

std :: bindおよびstd :: function項は、0個の引数を取るものとして評価されませんか?

分類Dev

std :: bind2ndおよびstd :: bindと2次元配列および構造体の配列

分類Dev

std :: bindおよびstd :: threadのセマンティクス/動作を移動します

分類Dev

std :: bindとstd :: visitの使用

分類Dev

std :: bindを使用して、std :: functionに格納します

分類Dev

std :: shared_ptrとstd :: functionをカスタム削除およびアロケーターとして使用

分類Dev

std :: bind to void * to std :: function

分類Dev

std :: bindがstd :: filesystem :: pathおよびstd :: ostreamで機能しないのはなぜですか?

分類Dev

std :: bindの結果をstd :: functionに変換できません

分類Dev

std :: mapでstd :: functionを使用する

分類Dev

std :: listに対するstd :: prevおよびstd :: nextの有効性

分類Dev

std :: unique_ptrおよびstd :: shared_ptrの所有権を取得する方法

分類Dev

std :: copy、std :: copy_backwardおよび重複する範囲

分類Dev

std :: enable :: ifおよびstd :: is_base_ofを使用して継承を制約します

分類Dev

clang、std :: functionおよび-fno-rtti

分類Dev

std::reference_wrapper::get で std::bind を使用する

Related 関連記事

  1. 1

    std :: functionおよびstd :: bindでC ++テンプレートを使用する

  2. 2

    std :: bindおよびstd :: function with polymorphism、base class

  3. 3

    std :: bindおよびstd :: functionを使用すると、コールバックが失敗します

  4. 4

    C ++ 11:継承でstd :: mem_fnおよびstd :: bindを使用する方法

  5. 5

    std :: applyをstd :: bindに使用する

  6. 6

    std :: functionおよびstd :: bind:それらは何であり、いつ使用する必要がありますか?

  7. 7

    std :: bindおよびstd :: weak_ptr

  8. 8

    std :: sscanfおよびstd :: stringを使用するC ++

  9. 9

    パラメータを使用したvoidメソッドをstd :: functionおよびstd :: bind C ++を使用した別のメソッドに渡す

  10. 10

    std :: bindおよびstd :: placeholdersを使用する可変個引数テンプレートファクトリ

  11. 11

    std :: functionおよびstd :: bindの戻り値

  12. 12

    constクラスオブジェクトをstd :: functionおよびstd :: bindに渡すとコンパイルエラーが発生します

  13. 13

    std :: mapおよびstd :: variantを含む不完全な型

  14. 14

    std :: bindおよびstd :: function項は、0個の引数を取るものとして評価されませんか?

  15. 15

    std :: bind2ndおよびstd :: bindと2次元配列および構造体の配列

  16. 16

    std :: bindおよびstd :: threadのセマンティクス/動作を移動します

  17. 17

    std :: bindとstd :: visitの使用

  18. 18

    std :: bindを使用して、std :: functionに格納します

  19. 19

    std :: shared_ptrとstd :: functionをカスタム削除およびアロケーターとして使用

  20. 20

    std :: bind to void * to std :: function

  21. 21

    std :: bindがstd :: filesystem :: pathおよびstd :: ostreamで機能しないのはなぜですか?

  22. 22

    std :: bindの結果をstd :: functionに変換できません

  23. 23

    std :: mapでstd :: functionを使用する

  24. 24

    std :: listに対するstd :: prevおよびstd :: nextの有効性

  25. 25

    std :: unique_ptrおよびstd :: shared_ptrの所有権を取得する方法

  26. 26

    std :: copy、std :: copy_backwardおよび重複する範囲

  27. 27

    std :: enable :: ifおよびstd :: is_base_ofを使用して継承を制約します

  28. 28

    clang、std :: functionおよび-fno-rtti

  29. 29

    std::reference_wrapper::get で std::bind を使用する

ホットタグ

アーカイブ