이 기사에서는 C++ STL에서 std::is_pointer 템플릿의 작동, 구문 및 예제에 대해 논의할 것입니다.
is_ 포인터는
포인터란 무엇입니까?
포인터는 다른 유형의 주소, 즉 메모리 풀의 일부 메모리 위치를 가리키는 비정적 유형입니다. 별표(*)를 사용하여 포인터를 정의하고 포인터가 보유하고 있는 특정 메모리를 참조하려는 경우 별표(*)도 사용합니다.
null로 초기화할 수 있는 유형이며 필요에 따라 나중에 유형을 변경할 수 있습니다.
구문
template <class T> is_pod;
매개변수
템플릿은 T 유형의 매개변수만 가질 수 있으며 주어진 유형이 포인터가 아닌지 확인하십시오.
반환 값
Boolean 값을 반환하고, 주어진 유형이 포인터 변수이면 true, 주어진 유형이 포인터가 아니면 false를 반환합니다.
예시
Input: is_pointer<int>::value; Output: False Input: is_pointer<int*>::value; Output: True
예시
#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; }
출력
위의 코드를 실행하면 다음 출력이 생성됩니다 -
checking for is_pointer: TP: false TP*: true TP&: false Null Pointer: false
예시
#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; }
출력
위의 코드를 실행하면 다음 출력이 생성됩니다 -
checking for is_pointer: int: false int*: true Int **: true Int ***: true