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

rank

template <class T>
struct rank : public integral_constant<std::size_t, RANK(T)> {};

Inherits: Class template rank inherits from integral_constant<std::size_t, RANK(T)>, where RANK(T) is the number of array dimensions in type T.

If T is not a (built-in) array type, then RANK(T) is zero.

Compiler Compatibility: All current compilers are supported by this trait.

Header: #include <boost/type_traits/rank.hpp> or #include <boost/type_traits.hpp>

Examples:

rank<int[]> inherits from integral_constant<std::size_t, 1>.

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

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

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

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

rank<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!

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


PrevUpHomeNext