述語関数をテンプレートパラメータとして渡すにはどうすればよいですか?

ノーネーム

私は簡単な述語を持っています:

class less_than
{
  int  x;

public:
  less_than(int i):
    x(i)
  {
  }

  bool  operator()(int i) const
  {
    return i < x;
  }
};

私はこのようなコンテナを持っています:

my_containers<std::list<int>, less_than, int> myCont(list_1, list_2, less_than(11));
  • 最初のパラメーターは、list_1とのタイプを示しlist_2ます。
  • 2番目のパラメーターは、述語の名前を示します。
  • 3番目のパラメーターは、list_1およびのアイテムタイプを示しlist_2ます。

次のようなテンプレートを作成しようとしました。

template<class Type, class Predicate, class Item_Stored>
class my_containers
{
public:
  my_containers(Type &tar_1, Type &tar_2, Predicate felt)
  {
    ItemList_1 = tar_1;
    ItemList_2 = tar_2;
    predIcate  = felt;
  }

  my_containers & insert(const Item_Stored put_in)
  {
    if (!predIcate.operator()(put_in))
    {
      ItemList_1.insert(ItemList_1.end(), put_in);
    }
    else
    {
      ItemList_2.insert(ItemList_2.end(), put_in);
    }

    return *this;
  }

private:
  Type       ItemList_1;
  Type       ItemList_2;
  Predicate  predIcate;
};

私が使用するたびに.insert(x)、それが他のリストにx与えられたless_than::xものよりも少ない場合は最初のリストに追加する必要がありますが、それは私にこのエラーを与えます:

Error   C2512   'less_than': no appropriate default constructor available   

どうすれば修正できますか?

RedFog

コンストラクターは、各メンバーのデフォルトコンストラクターを要求します。使用リスト初期化子メンバーを代わりに。

    my_containers(Type& tar_1, Type& tar_2, Predicate felt)
        :ItemList_1(tar_1), ItemList_2(tar_2), predIcate(felt){}

https://en.cppreference.com/w/cpp/language/constructorを参照してください

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

自由形式の述語をテンプレート関数ポインタ引数として渡すにはどうすればよいですか?

分類Dev

関数ポインタをクラステンプレートパラメータとして渡すにはどうすればよいですか?

分類Dev

関数の戻り値がテンプレートパラメーターと同じであるテンプレートパラメーターとして関数を渡すにはどうすればよいですか?

分類Dev

一般的な関数ポインタをテンプレートパラメータとして使用するにはどうすればよいですか?

分類Dev

テンプレートの配列を関数のパラメーターとして指定するにはどうすればよいですか?

分類Dev

Prologの別の述語のパラメーターとして述語を渡すにはどうすればよいですか?

分類Dev

Pythonで関数パラメーターとして:を渡すにはどうすればよいですか?

分類Dev

テンプレートパラメータパックが関数の引数と一致するかどうかに基づいて、テンプレート関数の定義をゲートするにはどうすればよいですか?

分類Dev

浮動小数点数をテンプレートパラメータとして渡すにはどうすればよいですか?

分類Dev

intパラメーターを使用してテンプレート関数を反復処理するにはどうすればよいですか?

分類Dev

Javaで関数をパラメータとして渡すにはどうすればよいですか?

分類Dev

非型テンプレートパラメーターと型テンプレートパラメーターを組み合わせて関数をテンプレート化するにはどうすればよいですか?

分類Dev

パラメータとして渡された関数のパラメータタイプを検出するにはどうすればよいですか?

分類Dev

オブジェクトを関数に渡すときに、テンプレート化されたコンストラクターがクラスをパラメーターとして受け取らないようにするにはどうすればよいですか?

分類Dev

関数パラメーターとして一致する列挙型バリアントを渡すにはどうすればよいですか?

分類Dev

テンプレート化されたクラスインスタンスをテンプレートパラメータとして別のテンプレートに渡すにはどうすればよいですか?

分類Dev

関数(独自のパラメーターを持つ)を関数のパラメーターとして渡すにはどうすればよいですか?

分類Dev

オブジェクト属性を関数パラメーターとしてラムダ関数に渡すにはどうすればよいですか?

分類Dev

パラメータをパラメータとして持つ関数をPythonの別の関数に渡すにはどうすればよいですか?

分類Dev

ocamlで関数パラメータとリターンタイプをリストとして指定するにはどうすればよいですか?

分類Dev

テンプレートパラメータに基づいて関数を「有効化」するにはどうすればよいですか?

分類Dev

JavaScript変数内に記述されたHTMLの関数パラメーターとしてイベントを渡すにはどうすればよいですか?

分類Dev

パラメータとしてコンテキストを使用して関数の戻り値を取得するにはどうすればよいですか?

分類Dev

Twig式をパラメーターとしてテンプレートに渡し、テンプレートのコンテキストで実行するにはどうすればよいですか?

分類Dev

ユーザー定義関数のパラメーターとしてリストを渡すにはどうすればよいですか?

分類Dev

コンセプトをテンプレートパラメータとして使用するにはどうすればよいですか?

分類Dev

Pythonでargparse関数を使用してオプションのパラメータをPythonクラスに渡すにはどうすればよいですか?

分類Dev

配列またはリストをパラメーターとしてPowerShell関数に渡すにはどうすればよいですか?

分類Dev

可変数の型パラメーターを使用してテンプレートを作成するにはどうすればよいですか?

Related 関連記事

  1. 1

    自由形式の述語をテンプレート関数ポインタ引数として渡すにはどうすればよいですか?

  2. 2

    関数ポインタをクラステンプレートパラメータとして渡すにはどうすればよいですか?

  3. 3

    関数の戻り値がテンプレートパラメーターと同じであるテンプレートパラメーターとして関数を渡すにはどうすればよいですか?

  4. 4

    一般的な関数ポインタをテンプレートパラメータとして使用するにはどうすればよいですか?

  5. 5

    テンプレートの配列を関数のパラメーターとして指定するにはどうすればよいですか?

  6. 6

    Prologの別の述語のパラメーターとして述語を渡すにはどうすればよいですか?

  7. 7

    Pythonで関数パラメーターとして:を渡すにはどうすればよいですか?

  8. 8

    テンプレートパラメータパックが関数の引数と一致するかどうかに基づいて、テンプレート関数の定義をゲートするにはどうすればよいですか?

  9. 9

    浮動小数点数をテンプレートパラメータとして渡すにはどうすればよいですか?

  10. 10

    intパラメーターを使用してテンプレート関数を反復処理するにはどうすればよいですか?

  11. 11

    Javaで関数をパラメータとして渡すにはどうすればよいですか?

  12. 12

    非型テンプレートパラメーターと型テンプレートパラメーターを組み合わせて関数をテンプレート化するにはどうすればよいですか?

  13. 13

    パラメータとして渡された関数のパラメータタイプを検出するにはどうすればよいですか?

  14. 14

    オブジェクトを関数に渡すときに、テンプレート化されたコンストラクターがクラスをパラメーターとして受け取らないようにするにはどうすればよいですか?

  15. 15

    関数パラメーターとして一致する列挙型バリアントを渡すにはどうすればよいですか?

  16. 16

    テンプレート化されたクラスインスタンスをテンプレートパラメータとして別のテンプレートに渡すにはどうすればよいですか?

  17. 17

    関数(独自のパラメーターを持つ)を関数のパラメーターとして渡すにはどうすればよいですか?

  18. 18

    オブジェクト属性を関数パラメーターとしてラムダ関数に渡すにはどうすればよいですか?

  19. 19

    パラメータをパラメータとして持つ関数をPythonの別の関数に渡すにはどうすればよいですか?

  20. 20

    ocamlで関数パラメータとリターンタイプをリストとして指定するにはどうすればよいですか?

  21. 21

    テンプレートパラメータに基づいて関数を「有効化」するにはどうすればよいですか?

  22. 22

    JavaScript変数内に記述されたHTMLの関数パラメーターとしてイベントを渡すにはどうすればよいですか?

  23. 23

    パラメータとしてコンテキストを使用して関数の戻り値を取得するにはどうすればよいですか?

  24. 24

    Twig式をパラメーターとしてテンプレートに渡し、テンプレートのコンテキストで実行するにはどうすればよいですか?

  25. 25

    ユーザー定義関数のパラメーターとしてリストを渡すにはどうすればよいですか?

  26. 26

    コンセプトをテンプレートパラメータとして使用するにはどうすればよいですか?

  27. 27

    Pythonでargparse関数を使用してオプションのパラメータをPythonクラスに渡すにはどうすればよいですか?

  28. 28

    配列またはリストをパラメーターとしてPowerShell関数に渡すにはどうすればよいですか?

  29. 29

    可変数の型パラメーターを使用してテンプレートを作成するにはどうすればよいですか?

ホットタグ

アーカイブ