8#pragma METAL internals : enable 
   17template <
typename T, T v>
 
   19  static constexpr constant T 
value = v;
 
   23  METAL_FUNC 
constexpr operator value_type() const noexcept {
 
 
 
   40template <
class T, T v>
 
   54#define integral_const_binop(__op__, __operator__)          \ 
   55  template <typename T, T tv, typename U, U uv>             \ 
   56  METAL_FUNC constexpr auto __operator__(                   \ 
   57      integral_constant<T, tv>, integral_constant<U, uv>) { \ 
   58    constexpr auto res = tv __op__ uv;                      \ 
   59    return integral_constant<decltype(res), res>{};         \ 
 
   77#undef integral_const_binop 
   84METAL_FUNC 
constexpr T 
sum(T x) {
 
 
   88template <
typename T, 
typename... Us>
 
   89METAL_FUNC 
constexpr auto sum(T x, Us... us) {
 
   90  return x + 
sum(us...);
 
 
   96#pragma METAL internals : disable 
#define integral_const_binop(__op__, __operator__)
Definition integral_constant.h:54
 
constexpr constant bool is_integral_v
Definition integral_constant.h:45
 
METAL_FUNC constexpr T sum(T x)
Definition integral_constant.h:84
 
Definition integral_constant.h:18
 
T value_type
Definition integral_constant.h:20
 
static constexpr constant T value
Definition integral_constant.h:19
 
Definition integral_constant.h:38