Horizon
Loading...
Searching...
No Matches
Math

Integral constant arithmetic. More...

Topics

 lazy

Typedefs

template<META_TYPE_CONSTRAINT(integral) T, META_TYPE_CONSTRAINT(integral) U>
using meta::plus
 An integral constant wrapper around the result of adding the two wrapped integers T::type::value and U::type::value.
template<META_TYPE_CONSTRAINT(integral) T, META_TYPE_CONSTRAINT(integral) U>
using meta::minus
 An integral constant wrapper around the result of subtracting the two wrapped integers T::type::value and U::type::value.
template<META_TYPE_CONSTRAINT(integral) T, META_TYPE_CONSTRAINT(integral) U>
using meta::multiplies
 An integral constant wrapper around the result of multiplying the two wrapped integers T::type::value and U::type::value.
template<META_TYPE_CONSTRAINT(integral) T, META_TYPE_CONSTRAINT(integral) U>
using meta::divides
 An integral constant wrapper around the result of dividing the two wrapped integers T::type::value and U::type::value.
template<META_TYPE_CONSTRAINT(integral) 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<META_TYPE_CONSTRAINT(integral) T, META_TYPE_CONSTRAINT(integral) U>
using meta::modulus
 An integral constant wrapper around the remainder of dividing the two wrapped integers T::type::value and U::type::value.
template<META_TYPE_CONSTRAINT(integral) T, META_TYPE_CONSTRAINT(integral) 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<META_TYPE_CONSTRAINT(integral) T, META_TYPE_CONSTRAINT(integral) 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<META_TYPE_CONSTRAINT(integral) T, META_TYPE_CONSTRAINT(integral) 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<META_TYPE_CONSTRAINT(integral) T, META_TYPE_CONSTRAINT(integral) 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<META_TYPE_CONSTRAINT(integral) T, META_TYPE_CONSTRAINT(integral) 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<META_TYPE_CONSTRAINT(integral) T, META_TYPE_CONSTRAINT(integral) 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<META_TYPE_CONSTRAINT(integral) T, META_TYPE_CONSTRAINT(integral) U>
using meta::bit_and
 An integral constant wrapper around the result of bitwise-and'ing the two wrapped integers T::type::value and U::type::value.
template<META_TYPE_CONSTRAINT(integral) T, META_TYPE_CONSTRAINT(integral) U>
using meta::bit_or
 An integral constant wrapper around the result of bitwise-or'ing the two wrapped integers T::type::value and U::type::value.
template<META_TYPE_CONSTRAINT(integral) T, META_TYPE_CONSTRAINT(integral) U>
using meta::bit_xor
 An integral constant wrapper around the result of bitwise-exclusive-or'ing the two wrapped integers T::type::value and U::type::value.
template<META_TYPE_CONSTRAINT(integral) 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<META_TYPE_CONSTRAINT(integral)... 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<META_TYPE_CONSTRAINT(integral)... 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....

Detailed Description

Integral constant arithmetic.

Typedef Documentation

◆ bit_and

template<META_TYPE_CONSTRAINT(integral) T, META_TYPE_CONSTRAINT(integral) U>
using meta::bit_and
Initial value:
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.

◆ bit_or

template<META_TYPE_CONSTRAINT(integral) T, META_TYPE_CONSTRAINT(integral) U>
using meta::bit_or
Initial value:
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.

◆ bit_xor

template<META_TYPE_CONSTRAINT(integral) T, META_TYPE_CONSTRAINT(integral) U>
using meta::bit_xor
Initial value:
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.

◆ divides

template<META_TYPE_CONSTRAINT(integral) T, META_TYPE_CONSTRAINT(integral) U>
using meta::divides
Initial value:
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.

◆ minus

template<META_TYPE_CONSTRAINT(integral) T, META_TYPE_CONSTRAINT(integral) U>
using meta::minus
Initial value:
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.

◆ modulus

template<META_TYPE_CONSTRAINT(integral) T, META_TYPE_CONSTRAINT(integral) U>
using meta::modulus
Initial value:
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.

◆ multiplies

template<META_TYPE_CONSTRAINT(integral) T, META_TYPE_CONSTRAINT(integral) U>
using meta::multiplies
Initial value:
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.

◆ plus

template<META_TYPE_CONSTRAINT(integral) T, META_TYPE_CONSTRAINT(integral) U>
using meta::plus
Initial value:
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.