Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++의 is_pointer 템플릿

<시간/>

이 기사에서는 C++ STL에서 std::is_pointer 템플릿의 작동, 구문 및 예제에 대해 논의할 것입니다.

is_ 포인터는 헤더 파일 아래에 있는 템플릿입니다. 이 템플릿은 주어진 유형 T가 포인터 유형인지 여부를 확인하는 데 사용됩니다.

포인터란 무엇입니까?

포인터는 다른 유형의 주소, 즉 메모리 풀의 일부 메모리 위치를 가리키는 비정적 유형입니다. 별표(*)를 사용하여 포인터를 정의하고 포인터가 보유하고 있는 특정 메모리를 참조하려는 경우 별표(*)도 사용합니다.

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