13 constexpr
unsigned char2digit(
const char c)
15 assert(c >=
'0' && c <=
'9' &&
"Unknown digit in integral constant");
16 return unsigned(c) - unsigned(
'0');
19 template <
char... digits>
20 constexpr std::size_t string2num()
22 const char arr[] = {digits...};
23 assert(arr[0] !=
'-' &&
"Negative integral constant");
25 std::size_t result = 0;
26 std::size_t power = 1;
28 const int N =
sizeof...(digits);
29 for (
int i = 0; i < N; ++i) {
30 char c = arr[N - 1 - i];
31 result+= char2digit(c) * power;
41 template <
char... digits>
42 constexpr
auto operator"" _c()
44 return std::integral_constant<std::size_t,Impl::string2num<digits...>()>{};
Contains all classes needed for solving linear and non linear equation systems.
Definition: AdaptBase.hpp:6