Espacios de nombres
Variantes
Acciones

std::remove_reference

De cppreference.com
< cpp‎ | types
 
 
Biblioteca de servicios
 
Apoyo de tipos
Propiedades de tipos
(C++11)
(C++11)
(C++14)
(C++11)
(C++11)(hasta C++20)
(C++11)(en desuso en C++20)
(C++11)
Constantes de rasgos de tipos
Metafunciones
(C++17)
Contexto de evaluación constante
Operaciones soportadas
Relaciones y consultas de propiedades
Modificaciones de tipos
remove_reference
(C++11)
Transformaciones de tipos
(C++11)
(C++11)
(C++17)
(C++11)(hasta C++20)(C++17)
 
Definido en el archivo de encabezado <type_traits>
template<class T >
struct remove_reference;
(desde C++11)

Si el tipo T tipo referencia, proporciona el miembro typedef type, que es el tipo al que hace referencia T. De lo contrario type es T.

El comportamiento de un programa que añade especializaciones para remove_reference no está definido.

Contenido

[editar]Tipos miembro

Nombre Definición
type El tipo al que hace referencia T o T si no es una referencia.

[editar]Tipos auxiliares

template<class T >
using remove_reference_t =typename remove_reference<T>::type;
(desde C++14)

[editar]Posible implementación

template<class T >struct remove_reference {typedef T type;};template<class T >struct remove_reference<T&>{typedef T type;};template<class T >struct remove_reference<T&&>{typedef T type;};

[editar]Ejemplo

#include <iostream> // std::cout#include <type_traits> // std::is_same   template<class T1, class T2>void print_is_same(){std::cout<<std::is_same<T1, T2>()<<'\n';}   int main(){std::cout<<std::boolalpha;   print_is_same<int, int>(); print_is_same<int, int&>(); print_is_same<int, int&&>();   print_is_same<int, std::remove_reference<int>::type>(); print_is_same<int, std::remove_reference<int&>::type>(); print_is_same<int, std::remove_reference<int&&>::type>();}

Salida:

true false false true true true

[editar]Véase también

Comprueba si un tipo es o bien una referencia lvalue o una referencia rvalue
(plantilla de clase)[editar]
Añade referencia lvalue o rvalue al tipo dado.
(plantilla de clase)[editar]
Combina std::remove_cv y std::remove_reference.
(plantilla de clase)[editar]
close