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

C++のis_trivial関数


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

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

C ++の簡単なクラス型とは何ですか?

データが連続して格納され、静的なデフォルトの初期化のみを受け入れる場合、型をTrivial型と呼びます。任意の型、クラス、スカラー型の配列を含めることができます。

自明なクラスは、自明にデフォルトで構築され、自明にコピー可能なクラスです。ささいなクラスにする際に注意しなければならない点がいくつかあります-

  • 仮想メンバーまたは仮想基本クラスがあってはなりません。
  • 非静的メンバーはありません。
  • 非静的メンバーを持つ基本クラスはありません

構文

template <class T> is_trivial;

パラメータ

テンプレートにはタイプTのパラメーターのみを含めることができ、指定されたタイプが単純なタイプクラスであるかどうかを確認できます。

戻り値

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

Input: class A {};
   class B { B() {} };
   class D { virtual void fn() {} };
   cout<<”A: ”<<is_trivial<A>;
   cout<<”B: ”<<is_trivial<B>;
   cout<<”D: ”<<is_trivial<D>;
Output:
A: True
B: False
D: False

#include <iostream>
#include <type_traits>
using namespace std;
class TP_1 {
};
class TP_2 {
   TP_2(){
   }
};
class TP_3 : TP_2 {
};
class TP_4 {
   virtual void dummy() {
   }
};
int main() {
   std::cout << std::boolalpha; //Returns value in boolean type
   std::cout << "TP_1: " << std::is_trivial<TP_1>::value << endl;
   std::cout << "TP_2: " << std::is_trivial<TP_2>::value << endl;
   std::cout << "TP_3: " << std::is_trivial<TP_3>::value << endl;
   std::cout << "TP_4: " << std::is_trivial<TP_4>::value << endl;
   return 0;
}

出力

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

TP_1: true
TP_2: false
TP_3: false
TP_4: false

  1. C ++のswap()関数

    swap()関数は、2つの数値を交換するために使用されます。この関数を使用すると、2つの数値を交換するために3番目の変数は必要ありません。 C ++言語でのswap()の構文は次のとおりです。 void swap(int variable_name1, int variable_name2); 変数に値を割り当てるか、ユーザー定義の値を渡すと、変数の値が交換されますが、変数の値は実際の場所では同じままです。 これがC++言語でのswap()の例です 例 #include <bits/stdc++.h> using namespace std; int main() { &nb

  2. C++でのフレンドクラスと関数

    クラスのフレンド関数はそのクラスのスコープ外で定義されていますが、クラスのすべてのプライベートメンバーと保護されたメンバーにアクセスする権利があります。フレンド関数のプロトタイプはクラス定義に表示されますが、フレンドはメンバー関数ではありません。 フレンドは、関数、関数テンプレート、メンバー関数、またはクラスまたはクラステンプレートにすることができます。この場合、クラス全体とそのすべてのメンバーがフレンドになります。 関数をクラスのフレンドとして宣言するには、次のように、クラス定義の関数プロトタイプの前にキーワードfriendを付けます- class Box { double width;