Range-v3
Range algorithms, views, and actions for the Standard Library
 
Loading...
Searching...
No Matches
Math

Integral constant arithmetic. More...

Topics

 lazy
 
 

Typedefs

template<integral T, 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<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<integral T, 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<integral T, 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<integral T, 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<integral T, 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<integral T, 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<integral T, 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<integral T, 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<integral T, 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<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...
 
template<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<integral T, 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<integral T, 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<integral T, 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<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<integral T, 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<integral T, 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.
 

Detailed Description

Integral constant arithmetic.

Typedef Documentation

◆ bit_and

template<integral T, integral U>
using meta::bit_and

#include <meta/meta.hpp>

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<integral T, integral U>
using meta::bit_or

#include <meta/meta.hpp>

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<integral T, integral U>
using meta::bit_xor

#include <meta/meta.hpp>

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<integral T, integral U>
using meta::divides

#include <meta/meta.hpp>

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<integral T, integral U>
using meta::minus

#include <meta/meta.hpp>

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<integral T, integral U>
using meta::modulus

#include <meta/meta.hpp>

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<integral T, integral U>
using meta::multiplies

#include <meta/meta.hpp>

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<integral T, integral U>
using meta::plus

#include <meta/meta.hpp>

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.