diff --git a/src/core/include/mp-units/bits/external/fixed_string.h b/src/core/include/mp-units/bits/external/fixed_string.h index eb7a6110..5bc1fae5 100644 --- a/src/core/include/mp-units/bits/external/fixed_string.h +++ b/src/core/include/mp-units/bits/external/fixed_string.h @@ -60,6 +60,12 @@ struct basic_fixed_string { for (std::size_t i = 0; i < N; ++i) data_[i] = txt[i]; } + constexpr basic_fixed_string(const CharT* ptr, std::integral_constant) noexcept + { + if constexpr (N != 0) + for (std::size_t i = 0; i < N; ++i) data_[i] = *ptr++; + } + [[nodiscard]] constexpr bool empty() const noexcept { return N == 0; } [[nodiscard]] constexpr std::size_t size() const noexcept { return N; } [[nodiscard]] constexpr const CharT* data() const noexcept { return data_; } @@ -105,6 +111,9 @@ struct basic_fixed_string { template basic_fixed_string(const CharT (&str)[N]) -> basic_fixed_string; +template +basic_fixed_string(const CharT* ptr, std::integral_constant) -> basic_fixed_string; + template basic_fixed_string(CharT) -> basic_fixed_string;