整数型自体で整数型のクラステンプレートを特殊化する方法は?

TruLa

次のようなクラステンプレートがXあります。

template <typename T>
class X {
 public:
   X(T &t): t_ {t} {}

 private:
   T &t_;
};

整数のT = intコンパイル時間を「返す」だけになるように、それを特殊化する方法はありますか?X<int>(i)ii

換言すれば、私はのために同じ構文を持ちたいdoubleintX<double>(d)およびX<int>(i)後者無視「構文糖」と「戻り」の整数ことながら、上記のコードで示したような基準を初期化するコンストラクタをそれぞれ)が、元の呼び出しi無し何かをして。

DeiDei

intとにdoubleそれぞれ特殊化されたテンプレートを提供し、変換演算子を使用できます。このようなもの:

// the same applies for double
template<>
class X<int> {
 public:
   constexpr X(int t) : t_ {t} {}

   constexpr operator int() const { return t; }

 private:
   int t_;
};

これにより、次のようなものが機能するようになります(あなたの質問を誤解した場合は訂正してください)。

constexpr int n = X<int>(20); // n == 20

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

C ++非型テンプレートパラメーター:整数型のtypedefは整数型ですか?

分類Dev

C ++テンプレート-浮動型と整数型のさまざまな特殊化

分類Dev

整数型を使用したテンプレートの特殊化はどのように機能しますか?

分類Dev

テンプレート型配列から整数型を取得する方法

分類Dev

C ++:デフォルトではテンプレート関数の整数型を初期化します

分類Dev

C ++-14 enable_if_tを使用して、整数型でテンプレート化されたクラスのメンバー関数を選択します

分類Dev

CPPテンプレートの実際の型に基づいて整数型を呼び出す方法は?

分類Dev

整数型のテンプレート関数でsnprinfマスクを選択するにはどうすればよいですか?

分類Dev

C ++で、(整数型の)非型テンプレートパラメーターの型のみが異なる、同じ名前の2つの関数/クラステンプレートが許可されないのはなぜですか?

分類Dev

符号なし整数型を指定するC ++テンプレート特性

分類Dev

Pythonのループで整数型のリストを使用する

分類Dev

整数型からリストを作成する際の型エラー

分類Dev

サイズがテンプレートパラメータである標準の整数型はありますか?

分類Dev

非型テンプレートパラメータでポインタを整数型として扱うことは可能ですか?

分類Dev

C ++テンプレートの型の優先順位と整数型

分類Dev

整数にfloatを追加するときの整数型エラー

分類Dev

同じ整数値の列挙型でテンプレートを特殊化することは許可されていますか?

分類Dev

doubleでテンプレートクラスを特殊化する方法は?

分類Dev

すべてのインスタンスで(整数型の)クラス属性の合計を取得する

分類Dev

ステートメントには整数型の式が必要です(「double」は無効です)

分類Dev

クラステンプレートの非型パラメータを部分的に特殊化するにはどうすればよいですか?

分類Dev

Pythonで整数型の列をdatetime型に変換する方法は?

分類Dev

PostgreSQLエラー:列 "qty"は整数型ですが、式はテキスト型です

分類Dev

ループのない複数の整数型のnumpyでブールインデックスを作成する方法

分類Dev

それ自体がテンプレートであり、戻り型のみがテンプレート型に依存する型でテンプレートメソッドを特殊化するにはどうすればよいですか?

分類Dev

tclスクリプトで文字列型を整数型に変換します。そのような数字は文字列のタイプであり、私はそれをインクリメントしたいので、tclでそれを修正する方法

分類Dev

トーチスクリプト拡張を構築しようとすると、無効な型になります。整数型引数型エラーとしてサポートされているのはint64_tとboolのみです。

分類Dev

エラー:「式には整数型またはスコープなしの列挙型が必要です」

分類Dev

「静的アサーションに失敗しました:テンプレート引数が整数型ではありません」エラーを修正する方法は?

Related 関連記事

  1. 1

    C ++非型テンプレートパラメーター:整数型のtypedefは整数型ですか?

  2. 2

    C ++テンプレート-浮動型と整数型のさまざまな特殊化

  3. 3

    整数型を使用したテンプレートの特殊化はどのように機能しますか?

  4. 4

    テンプレート型配列から整数型を取得する方法

  5. 5

    C ++:デフォルトではテンプレート関数の整数型を初期化します

  6. 6

    C ++-14 enable_if_tを使用して、整数型でテンプレート化されたクラスのメンバー関数を選択します

  7. 7

    CPPテンプレートの実際の型に基づいて整数型を呼び出す方法は?

  8. 8

    整数型のテンプレート関数でsnprinfマスクを選択するにはどうすればよいですか?

  9. 9

    C ++で、(整数型の)非型テンプレートパラメーターの型のみが異なる、同じ名前の2つの関数/クラステンプレートが許可されないのはなぜですか?

  10. 10

    符号なし整数型を指定するC ++テンプレート特性

  11. 11

    Pythonのループで整数型のリストを使用する

  12. 12

    整数型からリストを作成する際の型エラー

  13. 13

    サイズがテンプレートパラメータである標準の整数型はありますか?

  14. 14

    非型テンプレートパラメータでポインタを整数型として扱うことは可能ですか?

  15. 15

    C ++テンプレートの型の優先順位と整数型

  16. 16

    整数にfloatを追加するときの整数型エラー

  17. 17

    同じ整数値の列挙型でテンプレートを特殊化することは許可されていますか?

  18. 18

    doubleでテンプレートクラスを特殊化する方法は?

  19. 19

    すべてのインスタンスで(整数型の)クラス属性の合計を取得する

  20. 20

    ステートメントには整数型の式が必要です(「double」は無効です)

  21. 21

    クラステンプレートの非型パラメータを部分的に特殊化するにはどうすればよいですか?

  22. 22

    Pythonで整数型の列をdatetime型に変換する方法は?

  23. 23

    PostgreSQLエラー:列 "qty"は整数型ですが、式はテキスト型です

  24. 24

    ループのない複数の整数型のnumpyでブールインデックスを作成する方法

  25. 25

    それ自体がテンプレートであり、戻り型のみがテンプレート型に依存する型でテンプレートメソッドを特殊化するにはどうすればよいですか?

  26. 26

    tclスクリプトで文字列型を整数型に変換します。そのような数字は文字列のタイプであり、私はそれをインクリメントしたいので、tclでそれを修正する方法

  27. 27

    トーチスクリプト拡張を構築しようとすると、無効な型になります。整数型引数型エラーとしてサポートされているのはint64_tとboolのみです。

  28. 28

    エラー:「式には整数型またはスコープなしの列挙型が必要です」

  29. 29

    「静的アサーションに失敗しました:テンプレート引数が整数型ではありません」エラーを修正する方法は?

ホットタグ

アーカイブ