Using Arch Linux with clang version 9.0.1, running ./build-succeeds.sh
works, but running ./build-fails.sh
fails:
In file included from main.cpp:1:
In file included from text/include/boost/text/line_break.hpp:5:
In file included from text/include/boost/text/grapheme_view.hpp:4:
In file included from text/include/boost/text/grapheme_iterator.hpp:5:
In file included from text/include/boost/text/grapheme.hpp:4:
In file included from text/include/boost/text/grapheme_break.hpp:5:
In file included from text/include/boost/text/lazy_segment_range.hpp:4:
In file included from text/include/boost/text/transcode_view.hpp:4:
In file included from text/include/boost/text/transcode_algorithm.hpp:33:
In file included from text/include/boost/text/transcode_iterator.hpp:5:
In file included from text/include/boost/text/detail/algorithm.hpp:4:
In file included from text/include/boost/text/detail/iterator.hpp:5:
In file included from text/include/boost/stl_interfaces/reverse_iterator.hpp:9:
text/include/boost/stl_interfaces/iterator_interface.hpp:365:75: error: no viable overloaded '+='
noexcept(noexcept(D(std::declval<D &>()), std::declval<D &>() += i))
~~~~~~~~~~~~~~~~~~~ ^ ~
range-v3/include/range/v3/iterator/concepts.hpp:324:15: note: in instantiation of exception specification for 'operator+<boost::text::v1::detail::const_lazy_segment_iterator<boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character>, boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character>, boost::text::v1::detail::next_hard_line_break_callable<boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character>, boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character> >, boost::text::v1::grapheme_view<boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character>, boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character> > > >' requested here
i + n,
^
range-v3/include/range/v3/iterator/concepts.hpp:321:5: note: while substituting explicitly-specified template arguments into function template 'random_access_iterator_CPP_concept_fragment_impl_'
CPP_concept_fragment(random_access_iterator_,
^
range-v3/include/concepts/concepts.hpp:279:19: note: expanded from macro 'CPP_concept_fragment'
decltype(&NAME ## CPP_concept_fragment_impl_<As...>)); \
^
<scratch space>:151:1: note: expanded from here
random_access_iterator_CPP_concept_fragment_impl_
^
range-v3/include/range/v3/iterator/concepts.hpp:341:22: note: while substituting deduced template arguments into function template 'random_access_iterator_CPP_concept_fragment_' [with As = <boost::text::v1::detail::const_lazy_segment_iterator<boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character>, boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character>, boost::text::v1::detail::next_hard_line_break_callable<boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character>, boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character> >, boost::text::v1::grapheme_view<boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character>, boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character> > >>]
CPP_fragment(ranges::random_access_iterator_, I) &&
^
range-v3/include/range/v3/range/concepts.hpp:117:9: note: in instantiation of variable template specialization 'ranges::random_access_iterator<boost::text::v1::detail::const_lazy_segment_iterator<boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character>, boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character>, boost::text::v1::detail::next_hard_line_break_callable<boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character>, boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character> >, boost::text::v1::grapheme_view<boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character>, boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character> > > >' requested here
random_access_iterator<iterator_t<T>>
^
range-v3/include/range/v3/range/concepts.hpp:116:5: note: while substituting explicitly-specified template arguments into function template 'random_access_range_CPP_concept_fragment_impl_'
CPP_concept_fragment(random_access_range_, requires()(0) &&
^
range-v3/include/concepts/concepts.hpp:279:19: note: expanded from macro 'CPP_concept_fragment'
decltype(&NAME ## CPP_concept_fragment_impl_<As...>)); \
^
<scratch space>:66:1: note: expanded from here
random_access_range_CPP_concept_fragment_impl_
^
range-v3/include/range/v3/range/concepts.hpp:122:48: note: (skipping 14 contexts in backtrace; use -ftemplate-backtrace-limit=0 to see all)
bidirectional_range<T> && CPP_fragment(ranges::random_access_range_, T);
^
range-v3/include/concepts/concepts.hpp:787:31: note: in instantiation of function template specialization 'concepts::detail::boolean_<ranges::defer::(lambda at range-v3/include/range/v3/view/view.hpp:83:13)>::operator bool<true>' requested here
return (bool) U{};
^
range-v3/include/concepts/concepts.hpp:791:30: note: in instantiation of member function 'concepts::detail::and_<concepts::detail::boolean_<ranges::defer::(lambda at range-v3/include/range/v3/range/concepts.hpp:316:38)>, concepts::detail::boolean_<ranges::defer::(lambda at range-v3/include/range/v3/view/view.hpp:83:13)> >::impl' requested here
return and_::impl(bool_<(bool) T{}>{});
^
range-v3/include/range/v3/view/view.hpp:114:26: note: in instantiation of member function 'concepts::detail::and_<concepts::detail::boolean_<ranges::defer::(lambda at range-v3/include/range/v3/range/concepts.hpp:316:38)>, concepts::detail::boolean_<ranges::defer::(lambda at range-v3/include/range/v3/view/view.hpp:83:13)> >::operator bool' requested here
requires defer::viewable_range<Rng> && //
^
range-v3/include/concepts/concepts.hpp:319:5: note: expanded from macro 'CPP_template'
CPP_template_sfinae \
^
range-v3/include/concepts/concepts.hpp:328:26: note: expanded from macro 'CPP_template_sfinae'
template<__VA_ARGS__ CPP_TEMPLATE_SFINAE_AUX_ \
^
range-v3/include/range/v3/view/view.hpp:117:17: note: while substituting prior template arguments into non-type template parameter [with Rng = boost::text::v1::lazy_segment_range<boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character>, boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character>, boost::text::v1::detail::next_hard_line_break_callable<boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character>, boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character> >, boost::text::v1::grapheme_view<boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character>, boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character> >, detail::const_lazy_segment_iterator, false> &, ViewFn = ranges::detail::bind_back_fn_<ranges::views::drop_base_fn, int>, CPP_true_ = std::integral_constant<bool, true>]
operator|(Rng && rng, view_closure<ViewFn> vw)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.cpp:12:26: note: while substituting deduced template arguments into function template 'operator|' [with Rng = boost::text::v1::lazy_segment_range<boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character>, boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character>, boost::text::v1::detail::next_hard_line_break_callable<boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character>, boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character> >, boost::text::v1::grapheme_view<boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character>, boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character> >, detail::const_lazy_segment_iterator, false> &, ViewFn = ranges::detail::bind_back_fn_<ranges::views::drop_base_fn, int>, CPP_true_ = (no value), $3 = (no value)]
for (auto line : lines | ranges::views::drop(1)) std::cout << line;
^
text/include/boost/text/rope.hpp:1089:19: note: candidate function not viable: no known conversion from 'boost::text::v1::detail::const_lazy_segment_iterator<boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character>, boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character>, boost::text::v1::detail::next_hard_line_break_callable<boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character>, boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character> >, boost::text::v1::grapheme_view<boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character>, boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character> > >' to 'boost::text::v1::text &' for 1st argument
inline text & operator+=(text & t, rope_view rv)
^
text/include/boost/text/rope.hpp:1108:19: note: candidate function not viable: no known conversion from 'boost::text::v1::detail::const_lazy_segment_iterator<boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character>, boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character>, boost::text::v1::detail::next_hard_line_break_callable<boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character>, boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character> >, boost::text::v1::grapheme_view<boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character>, boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character> > >' to 'boost::text::v1::text &' for 1st argument
inline text & operator+=(text & t, rope const & r)
^
text/include/boost/stl_interfaces/iterator_interface.hpp:356:24: note: candidate template ignored: substitution failure [with D = boost::text::v1::detail::const_lazy_segment_iterator<boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character>, boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character>, boost::text::v1::detail::next_hard_line_break_callable<boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character>, boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character> >, boost::text::v1::grapheme_view<boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character>, boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character> > >]: no matching function for call to 'base'
constexpr auto operator+=(difference_type n) noexcept(
^
text/include/boost/stl_interfaces/iterator_interface.hpp:429:66: error: no viable overloaded '+='
difference_type i) noexcept(noexcept(Derived(it), it += -i))
~~ ^ ~~
range-v3/include/range/v3/iterator/concepts.hpp:326:15: note: in instantiation of exception specification for 'operator-' requested here
i - n,
^
range-v3/include/range/v3/iterator/concepts.hpp:321:5: note: while substituting explicitly-specified template arguments into function template 'random_access_iterator_CPP_concept_fragment_impl_'
CPP_concept_fragment(random_access_iterator_,
^
range-v3/include/concepts/concepts.hpp:279:19: note: expanded from macro 'CPP_concept_fragment'
decltype(&NAME ## CPP_concept_fragment_impl_<As...>)); \
^
<scratch space>:151:1: note: expanded from here
random_access_iterator_CPP_concept_fragment_impl_
^
range-v3/include/range/v3/iterator/concepts.hpp:341:22: note: while substituting deduced template arguments into function template 'random_access_iterator_CPP_concept_fragment_' [with As = <boost::text::v1::detail::const_lazy_segment_iterator<boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character>, boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character>, boost::text::v1::detail::next_hard_line_break_callable<boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character>, boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character> >, boost::text::v1::grapheme_view<boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character>, boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character> > >>]
CPP_fragment(ranges::random_access_iterator_, I) &&
^
range-v3/include/range/v3/range/concepts.hpp:117:9: note: in instantiation of variable template specialization 'ranges::random_access_iterator<boost::text::v1::detail::const_lazy_segment_iterator<boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character>, boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character>, boost::text::v1::detail::next_hard_line_break_callable<boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character>, boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character> >, boost::text::v1::grapheme_view<boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character>, boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character> > > >' requested here
random_access_iterator<iterator_t<T>>
^
range-v3/include/range/v3/range/concepts.hpp:116:5: note: while substituting explicitly-specified template arguments into function template 'random_access_range_CPP_concept_fragment_impl_'
CPP_concept_fragment(random_access_range_, requires()(0) &&
^
range-v3/include/concepts/concepts.hpp:279:19: note: expanded from macro 'CPP_concept_fragment'
decltype(&NAME ## CPP_concept_fragment_impl_<As...>)); \
^
<scratch space>:66:1: note: expanded from here
random_access_range_CPP_concept_fragment_impl_
^
range-v3/include/range/v3/range/concepts.hpp:122:48: note: (skipping 14 contexts in backtrace; use -ftemplate-backtrace-limit=0 to see all)
bidirectional_range<T> && CPP_fragment(ranges::random_access_range_, T);
^
range-v3/include/concepts/concepts.hpp:787:31: note: in instantiation of function template specialization 'concepts::detail::boolean_<ranges::defer::(lambda at range-v3/include/range/v3/view/view.hpp:83:13)>::operator bool<true>' requested here
return (bool) U{};
^
range-v3/include/concepts/concepts.hpp:791:30: note: in instantiation of member function 'concepts::detail::and_<concepts::detail::boolean_<ranges::defer::(lambda at range-v3/include/range/v3/range/concepts.hpp:316:38)>, concepts::detail::boolean_<ranges::defer::(lambda at range-v3/include/range/v3/view/view.hpp:83:13)> >::impl' requested here
return and_::impl(bool_<(bool) T{}>{});
^
range-v3/include/range/v3/view/view.hpp:114:26: note: in instantiation of member function 'concepts::detail::and_<concepts::detail::boolean_<ranges::defer::(lambda at range-v3/include/range/v3/range/concepts.hpp:316:38)>, concepts::detail::boolean_<ranges::defer::(lambda at range-v3/include/range/v3/view/view.hpp:83:13)> >::operator bool' requested here
requires defer::viewable_range<Rng> && //
^
range-v3/include/concepts/concepts.hpp:319:5: note: expanded from macro 'CPP_template'
CPP_template_sfinae \
^
range-v3/include/concepts/concepts.hpp:328:26: note: expanded from macro 'CPP_template_sfinae'
template<__VA_ARGS__ CPP_TEMPLATE_SFINAE_AUX_ \
^
range-v3/include/range/v3/view/view.hpp:117:17: note: while substituting prior template arguments into non-type template parameter [with Rng = boost::text::v1::lazy_segment_range<boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character>, boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character>, boost::text::v1::detail::next_hard_line_break_callable<boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character>, boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character> >, boost::text::v1::grapheme_view<boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character>, boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character> >, detail::const_lazy_segment_iterator, false> &, ViewFn = ranges::detail::bind_back_fn_<ranges::views::drop_base_fn, int>, CPP_true_ = std::integral_constant<bool, true>]
operator|(Rng && rng, view_closure<ViewFn> vw)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.cpp:12:26: note: while substituting deduced template arguments into function template 'operator|' [with Rng = boost::text::v1::lazy_segment_range<boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character>, boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character>, boost::text::v1::detail::next_hard_line_break_callable<boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character>, boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character> >, boost::text::v1::grapheme_view<boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character>, boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character> >, detail::const_lazy_segment_iterator, false> &, ViewFn = ranges::detail::bind_back_fn_<ranges::views::drop_base_fn, int>, CPP_true_ = (no value), $3 = (no value)]
for (auto line : lines | ranges::views::drop(1)) std::cout << line;
^
text/include/boost/text/rope.hpp:1089:19: note: candidate function not viable: no known conversion from 'boost::text::v1::detail::const_lazy_segment_iterator<boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character>, boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character>, boost::text::v1::detail::next_hard_line_break_callable<boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character>, boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character> >, boost::text::v1::grapheme_view<boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character>, boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character> > >' to 'boost::text::v1::text &' for 1st argument
inline text & operator+=(text & t, rope_view rv)
^
text/include/boost/text/rope.hpp:1108:19: note: candidate function not viable: no known conversion from 'boost::text::v1::detail::const_lazy_segment_iterator<boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character>, boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character>, boost::text::v1::detail::next_hard_line_break_callable<boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character>, boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character> >, boost::text::v1::grapheme_view<boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character>, boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character> > >' to 'boost::text::v1::text &' for 1st argument
inline text & operator+=(text & t, rope const & r)
^
text/include/boost/stl_interfaces/iterator_interface.hpp:356:24: note: candidate template ignored: substitution failure [with D = boost::text::v1::detail::const_lazy_segment_iterator<boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character>, boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character>, boost::text::v1::detail::next_hard_line_break_callable<boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character>, boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character> >, boost::text::v1::grapheme_view<boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character>, boost::text::v1::utf_8_to_32_iterator<boost::text::v1::detail::const_rope_iterator, boost::text::v1::detail::const_rope_iterator, boost::text::v1::use_replacement_character> > >]: no matching function for call to 'base'
constexpr auto operator+=(difference_type n) noexcept(
^
2 errors generated.