From 59c0fb69f05cd7175746dbeac98a47909ca03800 Mon Sep 17 00:00:00 2001 From: Ruben Perez Date: Tue, 6 Feb 2024 20:08:04 +0100 Subject: [PATCH] Constructor from std::string_view is now constexpr close #163 --- include/boost/core/detail/string_view.hpp | 2 +- test/sv_construct_test.cpp | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/include/boost/core/detail/string_view.hpp b/include/boost/core/detail/string_view.hpp index 1d89b8b..2236545 100644 --- a/include/boost/core/detail/string_view.hpp +++ b/include/boost/core/detail/string_view.hpp @@ -392,7 +392,7 @@ public: #if !defined(BOOST_NO_CXX17_HDR_STRING_VIEW) - basic_string_view( std::basic_string_view > const& str ) BOOST_NOEXCEPT: p_( str.data() ), n_( str.size() ) + BOOST_CONSTEXPR basic_string_view( std::basic_string_view > const& str ) BOOST_NOEXCEPT: p_( str.data() ), n_( str.size() ) { } diff --git a/test/sv_construct_test.cpp b/test/sv_construct_test.cpp index 3a33fbd..01dbd84 100644 --- a/test/sv_construct_test.cpp +++ b/test/sv_construct_test.cpp @@ -18,6 +18,11 @@ template std::reverse_iterator make_reverse_iterator( It it ) return std::reverse_iterator( it ); } +// Verify that the constructor from std::string_view can be called in a constexpr context +#if !defined(BOOST_NO_CXX17_HDR_STRING_VIEW) +static_assert(!boost::core::string_view(std::string_view("abc", 3)).empty()); +#endif + int main() { {