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 đề
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