Integral constant arithmetic.
|
template<typename T , typename U > |
using | meta::bit_and = std::integral_constant< decltype(T::type::value &U::type::value), T::type::value &U::type::value > |
| An integral constant wrapper around the result of bitwise-and'ing the two wrapped integers T::type::value and U::type::value .
|
|
template<typename T > |
using | meta::bit_not = std::integral_constant< decltype(~T::type::value),~T::type::value > |
| An integral constant wrapper around the result of bitwise-complementing the wrapped integer T::type::value .
|
|
template<typename T , typename U > |
using | meta::bit_or = std::integral_constant< decltype(T::type::value|U::type::value), T::type::value|U::type::value > |
| An integral constant wrapper around the result of bitwise-or'ing the two wrapped integers T::type::value and U::type::value .
|
|
template<typename T , typename U > |
using | meta::bit_xor = std::integral_constant< decltype(T::type::value^U::type::value), T::type::value^U::type::value > |
| An integral constant wrapper around the result of bitwise-exclusive-or'ing the two wrapped integers T::type::value and U::type::value .
|
|
template<typename T , typename U > |
using | meta::divides = std::integral_constant< decltype(T::type::value/U::type::value), T::type::value/U::type::value > |
| An integral constant wrapper around the result of dividing the two wrapped integers T::type::value and U::type::value .
|
|
template<typename T , typename U > |
using | meta::equal_to = bool_< T::type::value==U::type::value > |
| A Boolean integral constant wrapper around the result of comparing T::type::value and U::type::value for equality.
|
|
template<typename T , typename U > |
using | meta::greater = bool_<(T::type::value > U::type::value)> |
| A Boolean integral constant wrapper around true if T::type::value is greater than U::type::value ; false , otherwise.
|
|
template<typename T , typename U > |
using | meta::greater_equal = bool_<(T::type::value >=U::type::value)> |
| A Boolean integral constant wrapper around true if T::type::value is greater than or equal to U::type::value ; false , otherwise.
|
|
template<typename T , typename U > |
using | meta::less = bool_<(T::type::value< U::type::value)> |
| A Boolean integral constant wrapper around true if T::type::value is less than U::type::value ; false , otherwise.
|
|
template<typename T , typename U > |
using | meta::less_equal = bool_<(T::type::value<=U::type::value)> |
| A Boolean integral constant wrapper around true if T::type::value is less than or equal to U::type::value ; false , otherwise.
|
|
template<typename... Ts> |
using | meta::max = fold< pop_front< list< Ts... >>, front< list< Ts... >>, quote< detail::max_ >> |
| An integral constant wrapper around the maximum of Ts::type::value...
|
|
template<typename... Ts> |
using | meta::min = fold< pop_front< list< Ts... >>, front< list< Ts... >>, quote< detail::min_ >> |
| An integral constant wrapper around the minimum of Ts::type::value...
|
|
template<typename T , typename U > |
using | meta::minus = std::integral_constant< decltype(T::type::value-U::type::value), T::type::value-U::type::value > |
| An integral constant wrapper around the result of subtracting the two wrapped integers T::type::value and U::type::value .
|
|
template<typename T , typename U > |
using | meta::modulus = std::integral_constant< decltype(T::type::value%U::type::value), T::type::value%U::type::value > |
| An integral constant wrapper around the remainder of dividing the two wrapped integers T::type::value and U::type::value .
|
|
template<typename T , typename U > |
using | meta::multiplies = std::integral_constant< decltype(T::type::value *U::type::value), T::type::value *U::type::value > |
| An integral constant wrapper around the result of multiplying the two wrapped integers T::type::value and U::type::value .
|
|
template<typename T > |
using | meta::negate = std::integral_constant< decltype(-T::type::value),-T::type::value > |
| An integral constant wrapper around the result of negating the wrapped integer T::type::value .
|
|
template<typename T , typename U > |
using | meta::not_equal_to = bool_< T::type::value!=U::type::value > |
| A Boolean integral constant wrapper around the result of comparing T::type::value and U::type::value for inequality.
|
|
template<typename T , typename U > |
using | meta::plus = std::integral_constant< decltype(T::type::value+U::type::value), T::type::value+U::type::value > |
| An integral constant wrapper around the result of adding the two wrapped integers T::type::value and U::type::value .
|
|