| 92 | // Short name for fast compilation |
| 93 | template <auto v> |
| 94 | struct C { |
| 95 | using type = C<v>; |
| 96 | static constexpr auto value = v; |
| 97 | using value_type = decltype(v); |
| 98 | HOST_DEVICE constexpr operator value_type() const noexcept { return value; } |
| 99 | HOST_DEVICE constexpr value_type operator()() const noexcept { return value; } |
| 100 | }; |
| 101 | |
| 102 | template <class T, T v> |
| 103 | using constant = C<v>; |