std::extent
提供: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, unsigned N = 0> struct extent; |
(C + + 11以来) | |
If T is an array type, provides the member constant value equal to the number of elements along the Nth dimension of the array, if N is in [0, std::rank<T>::value). For any other type, or if T is array of unknown bound along its first dimension and N is 0, value is 0.
目次 |
Inherited from std::integral_constant
Member constants
| value [静的] |
the number of elements along the Nth dimension of T (公共の静的メンバ定数) |
Member functions
| operator std::size_t |
std::size_tにオブジェクトは、 value返しに変換します Original: converts the object to std::size_t, returns value The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (パブリックメンバ関数) |
Member types
| タイプ
Original: Type The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
Definition |
value_type
|
std::size_t
|
type
|
std::integral_constant<std::size_t, value> |
[編集] 可能な実装
template<class T, unsigned N = 0> struct extent : std::integral_constant<std::size_t, 0> {}; template<class T> struct extent<T[], 0> : std::integral_constant<std::size_t, 0> {}; template<class T, unsigned N> struct extent<T[], N> : std::integral_constant<std::size_t, std::extent<T, N-1>::value> {}; template<class T, std::size_t N> struct extent<T[N], 0> : std::integral_constant<std::size_t, N> {}; template<class T, std::size_t I, unsigned N> struct extent<T[I], N> : std::integral_constant<std::size_t, std::extent<T, N-1>::value> {}; |
[編集] 例
#include <iostream> #include <type_traits> int main() { std::cout << std::extent<int[3]>::value << '\n'; std::cout << std::extent<int[3][4]>::value << '\n'; std::cout << std::extent<int[3][4],1>::value << '\n'; std::cout << std::extent<int[3][4],2>::value << '\n'; std::cout << std::extent<int[]>::value << '\n'; }
Output:
3 3 4 0 0
[編集] も参照してください
| (C++11) |
タイプかどうかをチェックするには、配列型です 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. (クラステンプレート) |
| (C++11) |
配列型の次元数を取得します 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. (クラステンプレート) |
| (C++11) |
指定された配列型から1エクステントを削除します 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. (クラステンプレート) |
| (C++11) |
removes all extents from the given array type (クラステンプレート) |