Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

This is the documentation for an old version of Boost. Click here to view this page for the latest version.
PrevUpHomeNext

extent

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 from integral_constant<std::size_t, 1>.

extent<double[2][3][4], 0>::type is the type integral_constant<std::size_t, 2>.

extent<double[2][3][4], 1>::type is the type integral_constant<std::size_t, 3>.

extent<double[2][3][4], 3>::type is the type integral_constant<std::size_t, 4>.

extent<int[4]>::value is an integral constant expression that evaluates to 4.

extent<int[][2]>::value is an integral constant expression that evaluates to 0.

extent<int[][2], 1>::value is an integral constant expression that evaluates to 2.

extent<int*>::value is an integral constant expression that evaluates to 0.

extent<boost::array<int, 3> >::value is an integral constant expression that evaluates to 0: boost::array is a class type and not an array type!

extent<T>::value_type is the type std::size_t.


PrevUpHomeNext