std::remove_pointer
De cppreference.com
Definido en el archivo de encabezado <type_traits> | ||
template<class T > struct remove_pointer; | (desde C++11) | |
Proporciona la definición de tipo (typedef) miembro type
, que es el tipo al que apunta T
, o, si T
no es un puntero, entonces type
es el mismo que T
.
El comportamiento de un programa que añade especializaciones para remove_pointer
no está definido.
Contenido |
[editar]Tipos miembro
Nombre | Definición |
type | El tipo al que apunta T , o T si no es un puntero. |
[editar]Tipos auxiliares
template<class T > using remove_pointer_t =typename remove_pointer<T>::type; | (desde C++14) | |
[editar]Posible implementación
template<class T >struct remove_pointer {typedef T type;};template<class T >struct remove_pointer<T*>{typedef T type;};template<class T >struct remove_pointer<T*const>{typedef T type;};template<class T >struct remove_pointer<T*volatile>{typedef T type;};template<class T >struct remove_pointer<T*constvolatile>{typedef T type;}; |
[editar]Ejemplo
Ejecuta este código
#include <iostream>#include <type_traits> template<class T1, class T2>void print_is_same(){std::cout<<std::is_same<T1, T2>()<<'\n';} void print_separator(){std::cout<<"-----\n";} int main(){std::cout<<std::boolalpha; print_is_same<int, int>();// verdadero print_is_same<int, int*>();// falso print_is_same<int, int**>();// falso print_separator(); print_is_same<int, std::remove_pointer<int>::type>();// verdadero print_is_same<int, std::remove_pointer<int*>::type>();// verdadero print_is_same<int, std::remove_pointer<int**>::type>();// falso print_separator(); print_is_same<int, std::remove_pointer<int*const>::type>();// verdadero print_is_same<int, std::remove_pointer<int*volatile>::type>();// verdadero print_is_same<int, std::remove_pointer<int*constvolatile>::type>();// verdadero}
Salida:
true false false ----- true true false ----- true true true
[editar]Véase también
(C++11) | Comprueba si un tipo es un tipo puntero (plantilla de clase) |
(C++11) | Agrega puntero al tipo dado (plantilla de clase) |