Skip to content

Commit c2ddd6e

Browse files
committed
Fix ill-formedness when using range_adaptor_closure with GCC14.
1 parent f7246de commit c2ddd6e

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

include/boost/parser/detail/stl_interfaces/view_adaptor.hpp

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,10 @@
2424
#define BOOST_PARSER_USE_CPP23_STD_RANGE_ADAPTOR_CLOSURE 0
2525
#endif
2626

27-
#if !BOOST_PARSER_USE_CPP23_STD_RANGE_ADAPTOR_CLOSURE && \
27+
#if !BOOST_STL_INTERFACES_USE_CPP23_STD_RANGE_ADAPTOR_CLOSURE && \
28+
BOOST_STL_INTERFACES_USE_CONCEPTS && defined(BOOST_GCC) && 14 <= __GNUC__
29+
#define BOOST_PARSER_USE_LIBSTDCPP_GCC14_RANGE_ADAPTOR_CLOSURE 1
30+
#elif !BOOST_PARSER_USE_CPP23_STD_RANGE_ADAPTOR_CLOSURE && \
2831
BOOST_PARSER_DETAIL_STL_INTERFACES_USE_CONCEPTS && \
2932
defined(BOOST_PARSER_GCC) && 12 <= __GNUC__
3033
#define BOOST_PARSER_USE_LIBSTDCPP_GCC12_RANGE_ADAPTOR_CLOSURE 1
@@ -198,6 +201,11 @@ namespace boost::parser::detail { namespace stl_interfaces {
198201
template<typename D>
199202
using range_adaptor_closure = std::ranges::range_adaptor_closure<D>;
200203

204+
#elif BOOST_PARSER_USE_LIBSTDCPP_GCC14_RANGE_ADAPTOR_CLOSURE
205+
206+
template<typename D>
207+
using range_adaptor_closure = std::views::__adaptor::_RangeAdaptorClosure<D>;
208+
201209
#elif BOOST_PARSER_USE_LIBSTDCPP_GCC12_RANGE_ADAPTOR_CLOSURE
202210

203211
template<typename D>

0 commit comments

Comments
 (0)