◐ Shell
clean mode source ↗

std::remove_extent - cppreference.com

De cppreference.com

<metanoindex/>

<tbody> </tbody>

Definido no cabeçalho

<type_traits>

template< class T > struct remove_extent;

(desde C++11)

Se T é uma matriz de algum tipo X, fornece o membro typedef type igual X, caso contrário, é type T. Note que se T é uma matriz multidimensional, apenas a dimensão da primeira é removido.

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.

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.

Possível implementação

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;};

Exemplo

#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]);
}

Saída:

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) [edit]

(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) [edit]

(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) [edit]
removes all extents from the given array type
(modelo de classe) [edit]