![]() |
Home | Libraries | People | FAQ | More |
template <class T, std::size_t N = 0> struct extent : public integral_constant<std::size_t, EXTENT(T,N)> {};
Inherits: Class template extent inherits
from integral_constant<std::size_t, EXTENT(T,N)>,
where EXTENT(T,N) is the number of elements in the N'th array
dimension of type T.
If T is not a (built-in)
array type, or if N >
rank<T>::value, or if the N'th array bound is incomplete,
then EXTENT(T,N) is zero.
Header: #include
<boost/type_traits/extent.hpp>
or #include <boost/type_traits.hpp>
Examples:
extent<int[1]>inherits fromintegral_constant<std::size_t, 1>.
extent<double[2][3][4], 0>::typeis the typeintegral_constant<std::size_t, 2>.
extent<double[2][3][4], 1>::typeis the typeintegral_constant<std::size_t, 3>.
extent<double[2][3][4], 2>::typeis the typeintegral_constant<std::size_t, 4>.
extent<int[4]>::valueis an integral constant expression that evaluates to 4.
extent<int[][2]>::valueis an integral constant expression that evaluates to 0.
extent<int[][2], 1>::valueis an integral constant expression that evaluates to 2.
extent<int*>::valueis an integral constant expression that evaluates to 0.
extent<boost::array<int, 3> >::valueis an integral constant expression that evaluates to 0:boost::arrayis a class type and not an array type!
extent<T>::value_typeis the typestd::size_t.