C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++のis_scalarテンプレート


この記事では、C++STLでのstd::is_scalarテンプレートの動作、構文、および例について説明します。

is_scalarは、ヘッダーファイルの下にあるテンプレートです。このテンプレートは、指定されたタイプTがスカラータイプであるかどうかを確認するために使用されます

このテンプレートは、is_arithmetic、is_pointer、is_enum、is_member_pointer、またはis_sameの組み合わせであり、いずれかがtrueの場合、is_scalarの結果もtrueになるかどうかを確認します。

C ++のスカラー型とは何ですか?

スカラー型は、クラス型でも配列型でもないオブジェクトです。スカラー型は、オーバーロードなしで加算演算子の機能が組み込まれている型です。

構文

template <class T> is_scalar;

パラメータ

テンプレートはタイプTのパラメーターのみを持つことができ、指定されたタイプがスカラータイプであるかどうかを確認します。

戻り値

ブール値を返します。指定された型がスカラー型の場合はtrue、指定された型がスカラー型でない場合はfalseを返します。

Input: is_scalar<int>::value;
Output: True

Input: is_scalar<A>::value; //assuming A is an object of a class.
Output: False

#include <iostream>
#include <type_traits>
using namespace std;
int main() {
   class TP {
   };
   cout << boolalpha;
   cout << "checking for is_scalar: ";
   cout << "\nint(TP::*): "<< is_scalar<int(TP::*)>::value;
   cout << "\nint *: "<< is_scalar<int*>::value;
   cout << "\nbool: "<< is_scalar<bool>::value;
   cout << "\nint(int): "<< is_scalar<int(int)>::value;
   return 0;
}

出力

上記のコードを実行すると、次の出力が生成されます-

checking for is_scalar:
int(TP::*): true
int *: true
bool: true
int(int): false

#include <iostream>
#include <type_traits>
using namespace std;
int main() {
   class TP {
   };
   enum class TP_1 {
      var_1,
      var_2,
      var_3,
      var4
   };
   cout << boolalpha;
   cout << "checking for is_scalar: ";
   cout << "\nTP : "<< is_scalar<int(TP)>::value;
   cout << "\nTP_1: "<< is_scalar<TP_1>::value;
   cout << "\nint[10] "<< is_scalar<int[10]>::value;
   cout << "\nint&: "<< is_scalar<int&>::value;
   cout << "\nchar&: "<< is_scalar<char&>::value;
   return 0;
}

出力

上記のコードを実行すると、次の出力が生成されます-

checking for is_scalar:
TP : false
TP_1: true
int[10] false
int&: false
char&: false

  1. C++でのテンプレートの特殊化

    C ++では、テンプレートを使用して一般化された関数とクラスを作成します。したがって、int、char、floatなどの任意のタイプのデータ、またはテンプレートを使用するユーザー定義データを使用できます。 このセクションでは、テンプレートの特殊化の使用方法を説明します。これで、さまざまなタイプのデータ用に一般化されたテンプレートを定義できます。そして、特別なタイプのデータのためのいくつかの特別なテンプレート関数。より良いアイデアを得るためにいくつかの例を見てみましょう。 サンプルコード #include<iostream> using namespace std; templat

  2. C++での型推論

    型推論または推論とは、プログラミング言語での式のデータ型の自動検出を指します。これは、いくつかの強く静的に型付けされた言語に存在する機能です。 C ++では、autoキーワード(C ++ 11で追加)が自動型推定に使用されます。たとえば、ベクトルを反復処理するイテレータを作成する場合、その目的でautoを使用するだけです。 例 #include<iostream> #include<vector> using namespace std; int main() {    vector<int> arr(10);