From 01f2f21899736219be76952a44313950789e2afd Mon Sep 17 00:00:00 2001 From: Zach Laine Date: Sun, 28 Jan 2024 14:09:12 -0600 Subject: [PATCH] Fix MSVC build. --- include/boost/parser/detail/text/detail/all_t.hpp | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/include/boost/parser/detail/text/detail/all_t.hpp b/include/boost/parser/detail/text/detail/all_t.hpp index 6a977cb2..c9e67378 100644 --- a/include/boost/parser/detail/text/detail/all_t.hpp +++ b/include/boost/parser/detail/text/detail/all_t.hpp @@ -34,7 +34,13 @@ namespace boost::parser::detail::text::detail { constexpr bool container_ = is_detected_v; template - constexpr bool view = range_ && !container_; + constexpr bool view = +#if BOOST_PARSER_DETAIL_TEXT_USE_CONCEPTS || defined(__cpp_lib_concepts) + std::ranges::view +#else + range_ && !container_ +#endif + ; template< typename R, @@ -98,12 +104,13 @@ namespace boost::parser::detail::text::detail { template>> [[nodiscard]] constexpr auto operator()(R && r) const { - if constexpr (view>) + using T = remove_cv_ref_t; + if constexpr (view) return (R &&) r; else if constexpr (can_ref_view) - return ref_view((R &&) r); + return ref_view(r); else - return owning_view((R &&) r); + return owning_view(std::move(r)); } };