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

Mẫu is_const 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_const trong C ++ STL.

Mẫu is_const trong C ++ được sử dụng để kiểm tra xem kiểu được xác định có phải là kiểu đủ điều kiện const hay không.

Loại const-đủ điều kiện là gì?

Chúng tôi nói rằng một kiểu là một const-đủ điều kiện khi giá trị của kiểu là không đổi. Kiểu dữ liệu không đổi là kiểu mà khi một giá trị được khởi tạo trong một hằng số thì không thể thay đổi hoặc thay đổi được trong suốt chương trình.

Cú pháp

template <class T> is_const;

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à hằng số hay không

Giá trị trả về

Nó trả về một giá trị Boolean, true nếu kiểu đã cho là một định nghĩa hằng số và sai nếu kiểu đã cho không phải là định nghĩa hằng số.

Ví dụ

Input: is_const<const int>::value;
Output: True
Input: is_const<int>::value;
Output: False

Ví dụ

#include <iostream>
#include <type_traits>
using namespace std;
int main() {
   cout << boolalpha;
   cout << "checking for is_const template: ";
   cout << "\nInt : "<<is_const<int>::value;
   cout << "\nConst int : "<< is_const<const int>::value;
   cout << "\nConst int& : "<< is_const<const int&>::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_const template:
Int : false
Const int : true
Const int& : false

Ví dụ

#include <iostream>
#include <type_traits>
using namespace std;
int main() {
   cout << boolalpha;
   cout << "checking for is_const template: ";
   cout << "\nFloat : "<<is_const<float>::value;
   cout << "\nChar : "<<is_const<char>::value;
   cout << "\nFloat *: "<<is_const<float*>::value;
   cout << "\nChar *: "<<is_const<char*>::value;
   cout << "\nConst int* : "<< is_const<const int*>::value;
   cout << "\nint* const : "<< is_const<int* const>::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_const template:
Float : false
Char: false
Float *: false
Char *: fakse
Const int* : false
int* const: true