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 025d1c60..35e39738 100644 --- a/src/core/include/mp-units/bits/external/fixed_string.h +++ b/src/core/include/mp-units/bits/external/fixed_string.h @@ -85,6 +85,11 @@ struct basic_fixed_string { [[nodiscard]] constexpr const_iterator end() const noexcept { return data() + size(); } [[nodiscard]] constexpr const_iterator cend() const noexcept { return data() + size(); } + [[nodiscard]] constexpr std::basic_string_view view() const noexcept + { + return std::basic_string_view(*this); + } + template [[nodiscard]] constexpr friend basic_fixed_string operator+( const basic_fixed_string& lhs, const basic_fixed_string& rhs) noexcept diff --git a/test/static/fixed_string_test.cpp b/test/static/fixed_string_test.cpp index c4a56aed..a40677d1 100644 --- a/test/static/fixed_string_test.cpp +++ b/test/static/fixed_string_test.cpp @@ -54,4 +54,8 @@ static_assert(basic_fixed_string('d') + txt2 == basic_fixed_string("dabc")); static_assert(txt2 + basic_fixed_string("def") == basic_fixed_string("abcdef")); static_assert(basic_fixed_string("def") + txt2 == basic_fixed_string("defabc")); +#ifndef MP_UNITS_COMP_GCC +static_assert(basic_fixed_string("abcd").view().find('c') == 2); +#endif + } // namespace