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

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

is_ pointer 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 con trỏ hay không.

Con trỏ là gì?

Con trỏ là kiểu không tĩnh chứa một địa chỉ thuộc kiểu khác hay nói cách khác là trỏ đến một số vị trí bộ nhớ trong nhóm bộ nhớ. Với sự trợ giúp của dấu hoa thị (*), chúng tôi xác định một con trỏ và khi chúng tôi muốn tham chiếu đến bộ nhớ cụ thể mà con trỏ đang giữ thì chúng tôi cũng sử dụng dấu hoa thị (*).

Chúng là kiểu có thể được khởi tạo là null và sau đó có thể thay đổi kiểu tùy theo nhu cầu.

Cú pháp

template <class T> is_pod;

Tham số

Mẫu chỉ có thể có tham số thuộc loại T và kiểm tra xem loại đã cho có phải là Điểm hoặc không.

Giá trị trả về

Nó trả về giá trị Boolean, true nếu kiểu đã cho là biến con trỏ và false nếu kiểu đã cho không phải là con trỏ.

Ví dụ

Input: is_pointer<int>::value;
Output: False

Input: is_pointer<int*>::value;
Output: True

Ví dụ

#include <iostream>
#include <type_traits>
using namespace std;
class TP{
};
int main() {
   cout << boolalpha;
   cout << "checking for is_pointer:";
   cout << "\nTP: " << is_pointer<TP>::value;
   cout << "\nTP*: " << is_pointer<TP*>::value;
   cout << "\nTP&: " << is_pointer<TP&>::value;
   cout << "\nNull Pointer: "<< is_pointer<nullptr_t>::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_pointer:
TP: false
TP*: true
TP&: false
Null Pointer: false

Ví dụ

#include <iostream>
#include <type_traits>
using namespace std;
int main() {
   cout << boolalpha;
   cout << "checking for is_pointer:";
   cout << "\nint: " << is_pointer<int>::value;
   cout << "\nint*: " << is_pointer<int*>::value;
   cout << "\nint **: " << is_pointer<int **>::value;
   cout << "\nint ***: "<< is_pointer<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_pointer:
int: false
int*: true
Int **: true
Int ***: true