Author
anonymous
about 6 years ago
Language
C++
Compiler
gcc HEAD 9.0.0 20181223 (experimental)
Options
Warnings
Boost 1.63.0
C++2a(GNU)
no pedantic
Raw compiler options
-fconcepts
Author
anonymous
about 6 years ago
$ g++ prog.cc -Wall -Wextra -I/opt/wandbox/boost-1.63.0/gcc-head/include -std=gnu++2a -fconcepts
In file included from /opt/wandbox/cmcstl2/include/stl2/ranges.hpp:28,
from /opt/wandbox/cmcstl2/include/experimental/ranges/range:12,
from prog.cc:3:
/opt/wandbox/cmcstl2/include/stl2/view/filter.hpp: In instantiation of 'constexpr std::experimental::ranges::v1::filter_view<V, Pred>::__sentinel::__sentinel(std::experimental::ranges::v1::filter_view<V, Pred>&) [with V = std::experimental::ranges::v1::take_view<std::experimental::ranges::v1::iota_view<int, std::experimental::ranges::v1::unreachable> >; Pred = main()::<lambda(int)>]':
/opt/wandbox/cmcstl2/include/stl2/view/filter.hpp:60:28: required from 'constexpr std::experimental::ranges::v1::filter_view<V, Pred>::__sentinel std::experimental::ranges::v1::filter_view<V, Pred>::end() [with V = std::experimental::ranges::v1::take_view<std::experimental::ranges::v1::iota_view<int, std::experimental::ranges::v1::unreachable> >; Pred = main()::<lambda(int)>]'
/opt/wandbox/cmcstl2/include/stl2/detail/range/access.hpp:158:19: required from 'constexpr auto std::experimental::ranges::v1::__end::__fn::operator()(R&&) const [with R = std::experimental::ranges::v1::filter_view<std::experimental::ranges::v1::take_view<std::experimental::ranges::v1::iota_view<int, std::experimental::ranges::v1::unreachable> >, main()::<lambda(int)> >&]'
/opt/wandbox/cmcstl2/include/stl2/detail/range/concepts.hpp:50:7: required by substitution of 'template<class Rng> constexpr decltype (c(forward<Rng>(rng))) std::experimental::ranges::v1::detail::operator|(Rng&&, std::experimental::ranges::v1::detail::view_closure<std::experimental::ranges::v1::view::__filter_fn, main()::<lambda(int)> >&) [with Rng = std::experimental::ranges::v1::take_view<std::experimental::ranges::v1::iota_view<int, std::experimental::ranges::v1::unreachable> >]'
prog.cc:14:46: required from here
/opt/wandbox/cmcstl2/include/stl2/view/filter.hpp:162:29: error: no matching function for call to 'std::experimental::ranges::v1::take_view<std::experimental::ranges::v1::iota_view<int, std::experimental::ranges::v1::unreachable> >::__sentinel<true>::__sentinel(std::experimental::ranges::v1::filter_view<std::experimental::ranges::v1::take_view<std::experimental::ranges::v1::iota_view<int, std::experimental::ranges::v1::unreachable> >, main()::<lambda(int)> >::__sentinel)'
162 | : end_(__stl2::end(parent)) {}
| ^
In file included from /opt/wandbox/cmcstl2/include/stl2/ranges.hpp:42,
from /opt/wandbox/cmcstl2/include/experimental/ranges/range:12,
from prog.cc:3:
/opt/wandbox/cmcstl2/include/stl2/view/take.hpp:102:13: note: candidate: 'constexpr std::experimental::ranges::v1::take_view<R>::__sentinel<<anonymous> >::__sentinel(std::experimental::ranges::v1::take_view<R>::__sentinel<(! Const)>) requires Const and ConvertibleTo<decltype(std::experimental::ranges::v1::__cpos::end((declval<T&>)())), decltype(std::experimental::ranges::v1::__cpos::end((declval<typename std::conditional<IsConst, const V, V>::type&>)()))> [with bool Const = true; R = std::experimental::ranges::v1::iota_view<int, std::experimental::ranges::v1::unreachable>]'
102 | constexpr __sentinel(__sentinel<!Const> s)
| ^~~~~~~~~~
/opt/wandbox/cmcstl2/include/stl2/view/take.hpp:102:43: note: no known conversion for argument 1 from 'std::experimental::ranges::v1::filter_view<std::experimental::ranges::v1::take_view<std::experimental::ranges::v1::iota_view<int, std::experimental::ranges::v1::unreachable> >, main()::<lambda(int)> >::__sentinel' to 'std::experimental::ranges::v1::take_view<std::experimental::ranges::v1::iota_view<int, std::experimental::ranges::v1::unreachable> >::__sentinel<false>'
102 | constexpr __sentinel(__sentinel<!Const> s)
| ~~~~~~~~~~~~~~~~~~~^
/opt/wandbox/cmcstl2/include/stl2/view/take.hpp:99:22: note: candidate: 'constexpr std::experimental::ranges::v1::take_view<R>::__sentinel<<anonymous> >::__sentinel(std::experimental::ranges::v1::sentinel_t<typename std::conditional<IsConst, const V, V>::type>) [with bool Const = true; R = std::experimental::ranges::v1::iota_view<int, std::experimental::ranges::v1::unreachable>; std::experimental::ranges::v1::sentinel_t<typename std::conditional<IsConst, const V, V>::type> = std::experimental::ranges::v1::iota_view<int, std::experimental::ranges::v1::unreachable>::__sentinel; typename std::conditional<IsConst, const V, V>::type = const std::experimental::ranges::v1::iota_view<int, std::experimental::ranges::v1::unreachable>]'
99 | constexpr explicit __sentinel(sentinel_t<Base> end)
| ^~~~~~~~~~
/opt/wandbox/cmcstl2/include/stl2/view/take.hpp:99:50: note: no known conversion for argument 1 from 'std::experimental::ranges::v1::filter_view<std::experimental::ranges::v1::take_view<std::experimental::ranges::v1::iota_view<int, std::experimental::ranges::v1::unreachable> >, main()::<lambda(int)> >::__sentinel' to 'std::experimental::ranges::v1::sentinel_t<const std::experimental::ranges::v1::iota_view<int, std::experimental::ranges::v1::unreachable> >' {aka 'std::experimental::ranges::v1::iota_view<int, std::experimental::ranges::v1::unreachable>::__sentinel'}
99 | constexpr explicit __sentinel(sentinel_t<Base> end)
| ~~~~~~~~~~~~~~~~~^~~
/opt/wandbox/cmcstl2/include/stl2/view/take.hpp:97:3: note: candidate: 'constexpr std::experimental::ranges::v1::take_view<R>::__sentinel<<anonymous> >::__sentinel() [with bool Const = true; R = std::experimental::ranges::v1::iota_view<int, std::experimental::ranges::v1::unreachable>]'
97 | __sentinel() = default;
| ^~~~~~~~~~
/opt/wandbox/cmcstl2/include/stl2/view/take.hpp:97:3: note: candidate expects 0 arguments, 1 provided
/opt/wandbox/cmcstl2/include/stl2/view/take.hpp:90:23: note: candidate: 'constexpr std::experimental::ranges::v1::take_view<std::experimental::ranges::v1::iota_view<int, std::experimental::ranges::v1::unreachable> >::__sentinel<true>::__sentinel(const std::experimental::ranges::v1::take_view<std::experimental::ranges::v1::iota_view<int, std::experimental::ranges::v1::unreachable> >::__sentinel<true>&)'
90 | struct take_view<R>::__sentinel {
| ^~~~~~~~~~
/opt/wandbox/cmcstl2/include/stl2/view/take.hpp:90:23: note: no known conversion for argument 1 from 'std::experimental::ranges::v1::filter_view<std::experimental::ranges::v1::take_view<std::experimental::ranges::v1::iota_view<int, std::experimental::ranges::v1::unreachable> >, main()::<lambda(int)> >::__sentinel' to 'const std::experimental::ranges::v1::take_view<std::experimental::ranges::v1::iota_view<int, std::experimental::ranges::v1::unreachable> >::__sentinel<true>&'
/opt/wandbox/cmcstl2/include/stl2/view/take.hpp:90:23: note: candidate: 'constexpr std::experimental::ranges::v1::take_view<std::experimental::ranges::v1::iota_view<int, std::experimental::ranges::v1::unreachable> >::__sentinel<true>::__sentinel(std::experimental::ranges::v1::take_view<std::experimental::ranges::v1::iota_view<int, std::experimental::ranges::v1::unreachable> >::__sentinel<true>&&)'
/opt/wandbox/cmcstl2/include/stl2/view/take.hpp:90:23: note: no known conversion for argument 1 from 'std::experimental::ranges::v1::filter_view<std::experimental::ranges::v1::take_view<std::experimental::ranges::v1::iota_view<int, std::experimental::ranges::v1::unreachable> >, main()::<lambda(int)> >::__sentinel' to 'std::experimental::ranges::v1::take_view<std::experimental::ranges::v1::iota_view<int, std::experimental::ranges::v1::unreachable> >::__sentinel<true>&&'
Exit Code:
1