Computer >> Máy Tính >  >> Lập trình >> C ++

Mẫu is_fundaries trong C ++

Trong bài viết này, chúng ta sẽ thảo luận về cách làm việc, cú pháp và các ví dụ của mẫu std ::is_fundaries trong C ++ STL.

is_ basic là một mẫu nằm trong tệp tiêu đề . Mẫu này được sử dụng để kiểm tra xem kiểu T đã cho có phải là kiểu dữ liệu cơ bản hay không.

Loại cơ bản là gì?

Các kiểu cơ bản là các kiểu tích hợp sẵn đã được khai báo trong chính trình biên dịch. Như int, float, char, double, v.v. Chúng còn được gọi là kiểu dữ liệu tích hợp.

Tất cả các kiểu dữ liệu do người dùng định nghĩa như:class, enum, struct, tham chiếu hoặc con trỏ, không phải là một phần của kiểu cơ bản.

Cú pháp

template <class T> is_fundamental;

Tham số

Mẫu chỉ có thể có tham số kiểu T và kiểm tra xem kiểu đã cho có phải là kiểu lớp cuối cùng hay không.

Giá trị trả về

Nó trả về giá trị Boolean, true nếu kiểu đã cho là kiểu dữ liệu cơ bản và false nếu kiểu đã cho không phải là kiểu dữ liệu cơ bản.

Ví dụ

Input: class final_abc;
   is_fundamental<final_abc>::value;
Output: False

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

Input: is_fundamental<int*>::value;
Output: False

Ví dụ

#include <iostream>
#include <type_traits>
using namespace std;
class TP {
   //TP Body
};
int main() {
   cout << boolalpha;
   cout << "checking for is_fundamental:";
   cout << "\nTP: "<< is_fundamental<TP>::value;
   cout << "\nchar :"<< is_fundamental<char>::value;
   cout << "\nchar& :"<< is_fundamental<char&>::value;
   cout << "\nchar* :"<< is_fundamental<char*>::value;
   return 0;
}

Đầu ra

Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -

checking for is_fundamental:
TP: false
char : true
char& : false
char* : false

Ví dụ

#include <iostream>
#include <type_traits>
using namespace std;
int main() {
   cout << boolalpha;
   cout << "checking for is_fundamental:";
   cout << "\nint: "<< is_fundamental<int>::value;
   cout << "\ndouble :"<< is_fundamental<double>::value;
   cout << "\nint& :"<< is_fundamental<int&>::value;
   cout << "\nint* :"<< is_fundamental<int*>::value;
   cout << "\ndouble& :"<< is_fundamental<double&>::value;
   cout << "\ndouble* :"<< is_fundamental<double*>::value;
   return 0;
}

Đầu ra

Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -

checking for is_fundamental:
int: true
double : true
int& : false
int* : false
double& : false
double* : false