add_pointer 클래스
지정된 형식에서 포인터-형식을 만듭니다.
구문
template <class T>
struct add_pointer;
template <class T>
using add_pointer_t = typename add_pointer<T>::type;
매개 변수
T
수정할 형식입니다.
설명
멤버 typedef
type
이름은 .와 같은 형식입니다 remove_reference<T>::type*
. 별칭 add_pointer_t
은 멤버 typedef
type
에 액세스하는 바로 가기입니다.
참조에서 포인터를 만드는 것은 잘못이기 때문에 add_pointer
가 포인터-형식을 만들기 전에 지정된 형식에서 참조(있는 경우)를 제거합니다. 결과적으로, 형식이 참조인지 걱정하지 않고도 add_pointer
를 포함하여 형식을 사용할 수 있습니다.
예시
다음 예제에서는 add_pointer
형식이 해당 형식의 포인터와 같은 경우를 보여 줍니다.
#include <type_traits>
#include <iostream>
int main()
{
std::add_pointer_t<int> *p = (int **)0;
p = p; // to quiet "unused" warning
std::cout << "add_pointer_t<int> == "
<< typeid(*p).name() << std::endl;
return (0);
}
add_pointer_t<int> == int *
요구 사항
헤더:<type_traits>
네임스페이스: std