std::remove_extent
De cppreference.com
|
|
This page has been machine-translated from the English version of the wiki using Google Translate.
The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
| Defined in header <type_traits>
|
||
| template< class T > struct remove_extent; |
(ya que C + +11) | |
Si
T es una matriz de algún tipo X, proporciona el miembro typedef type igual a X, de lo contrario type es T. Tenga en cuenta que si T es una matriz multidimensional, sólo la primera dimensión se elimina .Original:
If
T is an array of some type X, provides the member typedef type equal to X, otherwise type is T. Note that if T is a multidimensional array, only the first dimension is removed.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Contenido |
[editar] Tipos de miembros
| Nombre
Original: Name The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
Definition |
type
|
el tipo del elemento de
T Original: the type of the element of T The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
[editar] Posible implementación
template<class T> struct remove_extent { typedef T type; }; template<class T> struct remove_extent<T[]> { typedef T type; }; template<class T, std::size_t N> struct remove_extent<T[N]> { typedef T type;}; |
[editar] Ejemplo
#include <iostream> #include <iterator> #include <algorithm> #include <type_traits> template<class A> typename std::enable_if< std::rank<A>::value == 1 >::type print_1d(const A& a) { copy(a, a+std::extent<A>::value, std::ostream_iterator<typename std::remove_extent<A>::type>(std::cout, " ")); std::cout << '\n'; } int main() { int a[][3] = {{1,2,3},{4,5,6}}; // print_1d(a); // compile-time error print_1d(a[1]); }
Output:
4 5 6
[editar] Ver también
| (C++11) |
Comprueba si un tipo es un tipo de matriz Original: checks if a type is an array type The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (clase de plantilla) |
| (C++11) |
obtiene el número de dimensiones de un tipo de matriz Original: obtains the number of dimensions of an array type The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (clase de plantilla) |
| (C++11) |
obtiene el tamaño de un tipo de matriz a lo largo de una dimensión especificada Original: obtains the size of an array type along a specified dimension The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (clase de plantilla) |
| (C++11) |
removes all extents from the given array type (clase de plantilla) |