std::remove_extent
Aus 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. |
definiert in Header <type_traits> | ||
template<class T > struct remove_extent; | (seit C++11) | |
Wenn
T
ein Array von irgendeiner Art X
ist, liefert das Element typedef type
gleich X
, sonst ist type
T
. Beachten Sie, dass, wenn T ein mehrdimensionales Array, nur die erste Dimension entfernt wird .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.
Inhaltsverzeichnis |
[Bearbeiten]Mitglied Typen
Name 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 | der Typ des Elements der 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. |
[Bearbeiten]Mögliche Implementierung
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;}; |
[Bearbeiten]Beispiel
#include <iostream>#include <iterator>#include <algorithm>#include <type_traits> template<class A>typenamestd::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
[Bearbeiten]Siehe auch
(C++11) | prüft, ob ein Typ ist ein Array-Typ 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. (Klassen-Template) |
(C++11) | ermittelt die Anzahl der Dimensionen eines Array-Typ 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. (Klassen-Template) |
(C++11) | erhält die Größe eines Array-Typs entlang einer bestimmten Dimension 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. (Klassen-Template) |
(C++11) | removes all extents from the given array type (Klassen-Template) |