From 909d9a7089db8ac59edc2ca2d2e0f65d77021bb0 Mon Sep 17 00:00:00 2001 From: Mateusz Pusz Date: Tue, 17 Oct 2023 08:59:25 +0200 Subject: [PATCH] feat: `basic_fixed_string(const CharT*, std::integral_constant)` constructor added --- src/core/include/mp-units/bits/external/fixed_string.h | 9 +++++++++ 1 file changed, 9 insertions(+) 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;