std::remove_all_extents
Da 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. |
Definido no cabeçalho <type_traits>
|
||
template< class T > struct remove_all_extents; |
(desde C++11) | |
Se
T
é uma matriz multidimensional de algum tipo X
, fornece o membro typedef type
igual a X
, caso contrário, é type
T
.Original:
If
T
is a multidimensional array of some type X
, provides the member typedef type
equal to X
, otherwise type
is T
.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.
Índice |
[editar] Tipos de membro
Nome
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
|
o tipo do 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] Possível implementação
template<class T> struct remove_all_extents { typedef T type;}; template<class T> struct remove_all_extents<T[]> { typedef typename remove_all_extents<T>::type type; }; template<class Tp, std::size_t N> struct remove_all_extents<T[N]> { typedef typename remove_all_extents<T>::type type; }; |
[editar] Exemplo
#include <iostream> #include <type_traits> #include <typeinfo> template<class A> void foo(const A&) { typedef typename std::remove_all_extents<A>::type Type; std::cout << "underlying type: " << typeid(Type).name() << '\n'; } int main() { float a1[1][2][3]; int a2[3][2]; float a3[1][1][1][1][2]; double a4[2][3]; foo(a1); foo(a2); foo(a3); foo(a4); }
Saída:
underlying type: f underlying type: i underlying type: f underlying type: d
[editar] Veja também
(C++11) |
verifica se o tipo é um 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. (modelo de classe) |
(C++11) |
obtém o número de dimensões de um 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. (modelo de classe) |
(C++11) |
obtém o tamanho de um tipo de matriz ao longo de uma dimensão 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. (modelo de classe) |
(C++11) |
remove uma medida do tipo matriz dada Original: removes one extent from the given array type The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (modelo de classe) |