2017-02-01 23 views
0

テンプレートパラメータを引数として受け取り、ユーザー定義型(クラスまたは構造体)または組み込みデータ型(int、float、char ...)であることを確認する準備関数があります。 )?テンプレートパラメータの評価

+0

[''](http://en.cppreference.com/w/cpp/header/type_traits) – NathanOliver

答えて

0

テンプレートパラメータが整数か浮動小数点型かを判断するstd::is_arithmeticテンプレートを探しています。

削除のプロセスによって、残りのオプションは、ポインタまたは参照、クラス、およびvoidです。たぶん何らかの列挙型の列挙型かもしれません。どのようにそれらを分類したいのか、あなたの質問からは不明ですが、必要ならば、特定のタイプをさらに曖昧さをなくすために、std::is_arithmeticの上に追加のチェックを追加する必要があります。

+0

注意 'std :: is_fundamental'は' void'と 'std :: nullptr_t'をさらにカバーしています算術型に変換します。その上に、配列、ポインタ、メンバポインタ、および参照があります。 'is_class'と' is_union'から始まり、OPが何を正確に望むかに応じて、それらが失敗するかどうか、さらにcv修飾子とポインタや参照を取り除く方が簡単かもしれません。 – chris