diff options
| author | Léo Lam <leo@leolam.fr> | 2021-11-01 14:56:23 +0100 |
|---|---|---|
| committer | Léo Lam <leo@leolam.fr> | 2021-11-01 14:57:38 +0100 |
| commit | b63c16c55f604cd8dc0bb4441d7c674f5bc34d4b (patch) | |
| tree | 2f50124bee19bad5933cb342e556438271cbc96b /src | |
| parent | d10dd65dcd371c87012b31700a871a8d6c5a9aa1 (diff) | |
ksys/util: Fix C++17 compliance in FixedString
Lambda expressions cannot appear in a template argument pre-C++20.
Diffstat (limited to 'src')
| -rw-r--r-- | src/KingSystem/Utils/FixedString.h | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/KingSystem/Utils/FixedString.h b/src/KingSystem/Utils/FixedString.h index 039df272..1119ac0b 100644 --- a/src/KingSystem/Utils/FixedString.h +++ b/src/KingSystem/Utils/FixedString.h @@ -56,13 +56,14 @@ template <auto N, int base = 10> constexpr auto Str() { constexpr char digits[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; - FixedString<([]() constexpr noexcept { + constexpr auto len = [] { unsigned int len = N > 0 ? 0 : 1; for (auto n = N; n; len++, n /= base) continue; return len; - }())> - buf{}; + }(); + + FixedString<len> buf{}; auto ptr = buf.data() + buf.length(); if (N == 0) { |
