メンバー関数のオーバーロードのために可変個引数テンプレートクラスから型を抽出します

Magix

可変個引数テンプレートクラスのタイプごとに関数のオーバーロードが必要です。それは可能ですか?

template<typename ...args>
class Example {
    virtual void doSomething(args(0) arg) { ... } 
    virtual void doSomething(args(1) arg) { ... }
    /// etc... implementations are the same, but I need access to the type
}

折り畳み式を使ってみましたが、うまくいっていないと思います。関数を仮想にする必要があるためtemplate<typename T> virtual void doSomething(T arg)、テンプレート仮想関数が許可されていないため、宣言できません

ラドスラフ・ボイダノビッチ

クラスは、関数パラメータータイプとして単一のテンプレートパラメーターを使用して1つの仮想関数を定義する基本クラステンプレートのインスタンス化のテンプレート化されたパックから派生できます。派生クラスは、すべて仮想である各テンプレート引数タイプの関数オーバーロードを保持します。

template<typename arg>
class Base {
    virtual void doSomething(arg arg) {}
};

template<typename ...args>
class Example : public Base<args>... {};

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

テンプレート引数に基づいて関数オーバーロードのセットを使用して可変個引数テンプレートクラスを構築しますか?

分類Dev

vs2015の可変個引数テンプレートにオーバーロードされたメンバー関数が見つかりません

分類Dev

依存型によるc ++ 11可変個引数関数テンプレートのオーバーロードはあいまいですか?

分類Dev

可変個引数テンプレート関数をどのようにオーバーロードしますか?

分類Dev

可変個引数テンプレート関数をどのようにオーバーロードしますか?

分類Dev

可変個引数テンプレートのメンバー関数からベクターにパラメーターを格納する方法は?

分類Dev

可変個引数クラステンプレートタイプのメンバー関数の結果で配列を初期化していますか?

分類Dev

可変個引数クラステンプレートタイプのメンバー関数の結果で配列を初期化していますか?

分類Dev

可変個引数テンプレートのクラスメソッドに、関数テンプレートから派生した型の引数として関数ポインタを使用させる方法は?

分類Dev

可変個引数テンプレートクラスがテンプレート引数から継承されている場合に、基本型のメソッドを呼び出す際のパラメータパックを展開します

分類Dev

ostreamでstd :: endlを使用する '<<'-バリアントメンバーを含む可変個引数テンプレートクラスでの演算子のオーバーロードにより、コンパイラエラーが発生する

分類Dev

可変個引数のテンプレート化されたメソッドのオーバーロード

分類Dev

可変個引数テンプレート関数のオーバーロードされた関数へのあいまいな呼び出し

分類Dev

可変個引数テンプレート関数のオーバーロードが失敗する

分類Dev

SWIGで可変個引数テンプレートクラスの可変個引数テンプレートメンバー関数をラップするにはどうすればよいですか?

分類Dev

非型テンプレートパラメーターのプレースホルダー型には、テンプレート引数として渡される関数のオーバーロード解決を含めることができますか?

分類Dev

std :: functionを可変個引数メンバー関数にバインドしてから、可変個引数テンプレート引数をバインドします

分類Dev

可変個引数テンプレートクラス-可変個引数メンバー関数

分類Dev

可変個引数テンプレートからのあいまいなメンバーリクエスト

分類Dev

可変個引数テンプレートクラスのコンストラクターでタプルメンバーを初期化します

分類Dev

gdbのテンプレートクラスのメンバー関数から静的変数を出力します

分類Dev

可変個引数関数と可変個引数テンプレートのオーバーロードルックアップ

分類Dev

テンプレートクラスの可変個引数メンバー関数

分類Dev

可変個引数テンプレート引数でオーバーロードされた関数

分類Dev

c ++:可変個引数テンプレートと関数のオーバーロード

分類Dev

可変個引数テンプレートのテンプレート: パラメータ パックは型テンプレートを必要とします

分類Dev

ラムダオーバーロードを作成するために可変個引数テンプレートの継承を使用するために他に何が必要ですか?

分類Dev

C ++の可変個引数テンプレートの関数パラメーターに型制限を適用する良い方法はありますか?

分類Dev

型消去と可変個引数テンプレートメンバー関数

Related 関連記事

  1. 1

    テンプレート引数に基づいて関数オーバーロードのセットを使用して可変個引数テンプレートクラスを構築しますか?

  2. 2

    vs2015の可変個引数テンプレートにオーバーロードされたメンバー関数が見つかりません

  3. 3

    依存型によるc ++ 11可変個引数関数テンプレートのオーバーロードはあいまいですか?

  4. 4

    可変個引数テンプレート関数をどのようにオーバーロードしますか?

  5. 5

    可変個引数テンプレート関数をどのようにオーバーロードしますか?

  6. 6

    可変個引数テンプレートのメンバー関数からベクターにパラメーターを格納する方法は?

  7. 7

    可変個引数クラステンプレートタイプのメンバー関数の結果で配列を初期化していますか?

  8. 8

    可変個引数クラステンプレートタイプのメンバー関数の結果で配列を初期化していますか?

  9. 9

    可変個引数テンプレートのクラスメソッドに、関数テンプレートから派生した型の引数として関数ポインタを使用させる方法は?

  10. 10

    可変個引数テンプレートクラスがテンプレート引数から継承されている場合に、基本型のメソッドを呼び出す際のパラメータパックを展開します

  11. 11

    ostreamでstd :: endlを使用する '<<'-バリアントメンバーを含む可変個引数テンプレートクラスでの演算子のオーバーロードにより、コンパイラエラーが発生する

  12. 12

    可変個引数のテンプレート化されたメソッドのオーバーロード

  13. 13

    可変個引数テンプレート関数のオーバーロードされた関数へのあいまいな呼び出し

  14. 14

    可変個引数テンプレート関数のオーバーロードが失敗する

  15. 15

    SWIGで可変個引数テンプレートクラスの可変個引数テンプレートメンバー関数をラップするにはどうすればよいですか?

  16. 16

    非型テンプレートパラメーターのプレースホルダー型には、テンプレート引数として渡される関数のオーバーロード解決を含めることができますか?

  17. 17

    std :: functionを可変個引数メンバー関数にバインドしてから、可変個引数テンプレート引数をバインドします

  18. 18

    可変個引数テンプレートクラス-可変個引数メンバー関数

  19. 19

    可変個引数テンプレートからのあいまいなメンバーリクエスト

  20. 20

    可変個引数テンプレートクラスのコンストラクターでタプルメンバーを初期化します

  21. 21

    gdbのテンプレートクラスのメンバー関数から静的変数を出力します

  22. 22

    可変個引数関数と可変個引数テンプレートのオーバーロードルックアップ

  23. 23

    テンプレートクラスの可変個引数メンバー関数

  24. 24

    可変個引数テンプレート引数でオーバーロードされた関数

  25. 25

    c ++:可変個引数テンプレートと関数のオーバーロード

  26. 26

    可変個引数テンプレートのテンプレート: パラメータ パックは型テンプレートを必要とします

  27. 27

    ラムダオーバーロードを作成するために可変個引数テンプレートの継承を使用するために他に何が必要ですか?

  28. 28

    C ++の可変個引数テンプレートの関数パラメーターに型制限を適用する良い方法はありますか?

  29. 29

    型消去と可変個引数テンプレートメンバー関数

ホットタグ

アーカイブ