#pragma once #include namespace base { /// A compile time fixed string, fit for usage as a C++20 cNTTP. template struct FixedString { char buf[N + 1] {}; constexpr FixedString(const char* s) { // NOLINT for(unsigned i = 0; i != N; ++i) buf[i] = s[i]; } constexpr operator const char*() const { // NOLINT return buf; } [[nodiscard]] constexpr usize Length() const { return N; } }; template FixedString(char const (&)[N]) -> FixedString; } // namespace base