#pragma once #include // size_t namespace string17 { template using StringArray = char[N]; template struct StringStore { StringArray data; static constexpr bool empty() noexcept { return N == 0; } static constexpr auto size() noexcept -> size_t { return N; } constexpr char operator[](size_t i) const noexcept { return data[i]; } }; template StringStore(const char (&)[N])->StringStore; } // namespace string17