265818 (2) [Avatar] Offline
#1
Till here:

const auto results =
words

// Grouping the same words
| view::group_by(std::equal_to<>());

it compiles fine: g++ -std=c++14 main.cpp -omain

But when activating view::transform :

const auto results =
words

// Grouping the same words
| view::group_by(std::equal_to<>())

// Creating a pair that consists of a word and its
// frequency
| view::transform([] (const auto &group) {
const auto begin = std::begin(group);
const auto end = std::end(group);
const int count = distance(begin, end);
const std::string word = *begin;
return std::make_pair(count, word);
});


g++ -std=c++14 main.cpp -omain
In file included from /usr/include/range/v3/view_facade.hpp:21:0,
from /usr/include/range/v3/view_adaptor.hpp:20,
from /usr/include/range/v3/view/adjacent_remove_if.hpp:21,
from /usr/include/range/v3/view.hpp:20,
from main.cpp:7:
/usr/include/range/v3/view_interface.hpp: In substitution of ‘template<class Container, class D, class, int _concept_requires_375, typename std::enable_if<((_concept_requires_375 == 43) || std::is_same<std::integer_sequence<bool, typename ranges::v3::concepts::models<ranges::v3::concepts::Range, T>::type:: value, typename std::integral_constant<bool, (! typename ranges::v3::concepts::models<ranges::v3::concepts::View, T>::type:: value)>::type:: value, typename ranges::v3::concepts::models<ranges::v3::concepts::MoveConstructible, T>::type:: value, typename ranges::v3::concepts::models<ranges::v3::concepts::ConvertibleTo, typename ranges::v3::value_type<decltype (ranges::v3::function_objects::{anonymous}::begin(declval<const D&>()))>::type, typename ranges::v3::value_type<decltype (ranges::v3::function_objects::{anonymous}::begin(declval<T&>()))>::type>::type:: value, typename ranges::v3::concepts::models<ranges::v3::concepts::Constructible, Container, typename meta::v1::detail::_if_<meta::v1::list<std::is_same<decltype (ranges::v3::function_objects::{anonymous}::begin(declval<const D&>())), decltype (ranges::v3::function_objects::{anonymous}::end(declval<const D&>()))>, decltype (ranges::v3::function_objects::{anonymous}::begin(declval<const D&>())), ranges::v3::_common_iterator_::common_iterator<decltype (ranges::v3::function_objects::{anonymous}::begin(declval<const D&>())), decltype (ranges::v3::function_objects::{anonymous}::end(declval<const D&>()))> >, std::integral_constant<bool, true> >::type, typename meta::v1::detail::_if_<meta::v1::list<std::is_same<decltype (ranges::v3::function_objects::{anonymous}::begin(declval<const D&>())), decltype (ranges::v3::function_objects::{anonymous}::end(declval<const D&>()))>, decltype (ranges::v3::function_objects::{anonymous}::begin(declval<const D&>())), ranges::v3::_common_iterator_::common_iterator<decltype (ranges::v3::function_objects::{anonymous}::begin(declval<const D&>())), decltype (ranges::v3::function_objects::{anonymous}::end(declval<const D&>()))> >, std::integral_constant<bool, true> >::type>::type:: value>, std::integer_sequence<bool, (typename ranges::v3::concepts::models<ranges::v3::concepts::Range, T>::type:: value || true), (typename std::integral_constant<bool, (! typename ranges::v3::concepts::models<ranges::v3::concepts::View, T>::type:: value)>::type:: value || true), (typename ranges::v3::concepts::models<ranges::v3::concepts::MoveConstructible, T>::type:: value || true), (typename ranges::v3::concepts::models<ranges::v3::concepts::ConvertibleTo, typename ranges::v3::value_type<decltype (ranges::v3::function_objects::{anonymous}::begin(declval<const D&>()))>::type, typename ranges::v3::value_type<decltype (ranges::v3::function_objects::{anonymous}::begin(declval<T&>()))>::type>::type:: value || true), (typename ranges::v3::concepts::models<ranges::v3::concepts::Constructible, Container, typename meta::v1::detail::_if_<meta::v1::list<std::is_same<decltype (ranges::v3::function_objects::{anonymous}::begin(declval<const D&>())), decltype (ranges::v3::function_objects::{anonymous}::end(declval<const D&>()))>, decltype (ranges::v3::function_objects::{anonymous}::begin(declval<const D&>())), ranges::v3::_common_iterator_::common_iterator<decltype (ranges::v3::function_objects::{anonymous}::begin(declval<const D&>())), decltype (ranges::v3::function_objects::{anonymous}::end(declval<const D&>()))> >, std::integral_constant<bool, true> >::type, typename meta::v1::detail::_if_<meta::v1::list<std::is_same<decltype (ranges::v3::function_objects::{anonymous}::begin(declval<const D&>())), decltype (ranges::v3::function_objects::{anonymous}::end(declval<const D&>()))>, decltype (ranges::v3::function_objects::{anonymous}::begin(declval<const D&>())), ranges::v3::_common_iterator_::common_iterator<decltype (ranges::v3::function_objects::{anonymous}::begin(declval<const D&>())), decltype (ranges::v3::function_objects::{anonymous}::end(declval<const D&>()))> >, std::integral_constant<bool, true> >::type>::type:: value || true)> >()), int>::type <anonymous> > constexpr ranges::v3::view_interface<Derived, <anonymous> >::operator Container() const [with Container = const auto:1; D = ranges::v3::iter_take_while_view<ranges::v3::iterator_range<__gnu_cxx::__normal_iterator<const std::__cxx11::basic_string<char>*, std::vector<std::__cxx11::basic_string<char> > >, __gnu_cxx::__normal_iterator<const std::__cxx11::basic_string<char>*, std::vector<std::__cxx11::basic_string<char> > > >, ranges::v3::indirected<ranges::v3::group_by_view<ranges::v3::iterator_range<__gnu_cxx::__normal_iterator<const std::__cxx11::basic_string<char>*, std::vector<std::__cxx11::basic_string<char> > >, __gnu_cxx::__normal_iterator<const std::__cxx11::basic_string<char>*, std::vector<std::__cxx11::basic_string<char> > > >, std::equal_to<void> >::cursor<true>::pred> >; <template-parameter-1-3> = <missing>; int _concept_requires_375 = <missing>; typename std::enable_if<((_concept_requires_375 == 43) || std::is_same<std::integer_sequence<bool, typename ranges::v3::concepts::models<ranges::v3::concepts::Range, T>::type:: value, typename std::integral_constant<bool, (! typename ranges::v3::concepts::models<ranges::v3::concepts::View, T>::type:: value)>::type:: value, typename ranges::v3::concepts::models<ranges::v3::concepts::MoveConstructible, T>::type:: value, typename ranges::v3::concepts::models<ranges::v3::concepts::ConvertibleTo, typename ranges::v3::value_type<decltype (ranges::v3::function_objects::{anonymous}::begin(declval<const D&>()))>::type, typename ranges::v3::value_type<decltype (ranges::v3::function_objects::{anonymous}::begin(declval<T&>()))>::type>::type:: value, typename ranges::v3::concepts::models<ranges::v3::concepts::Constructible, Container, typename meta::v1::detail::_if_<meta::v1::list<std::is_same<decltype (ranges::v3::function_objects::{anonymous}::begin(declval<const D&>())), decltype (ranges::v3::function_objects::{anonymous}::end(declval<const D&>()))>, decltype (ranges::v3::function_objects::{anonymous}::begin(declval<const D&>())), ranges::v3::_common_iterator_::common_iterator<decltype (ranges::v3::function_objects::{anonymous}::begin(declval<const D&>())), decltype (ranges::v3::function_objects::{anonymous}::end(declval<const D&>()))> >, std::integral_constant<bool, true> >::type, typename meta::v1::detail::_if_<meta::v1::list<std::is_same<decltype (ranges::v3::function_objects::{anonymous}::begin(declval<const D&>())), decltype (ranges::v3::function_objects::{anonymous}::end(declval<const D&>()))>, decltype (ranges::v3::function_objects::{anonymous}::begin(declval<const D&>())), ranges::v3::_common_iterator_::common_iterator<decltype (ranges::v3::function_objects::{anonymous}::begin(declval<const D&>())), decltype (ranges::v3::function_objects::{anonymous}::end(declval<const D&>()))> >, std::integral_constant<bool, true> >::type>::type:: value>, std::integer_sequence<bool, (typename ranges::v3::concepts::models<ranges::v3::concepts::Range, T>::type:: value || true), (typename std::integral_constant<bool, (! typename ranges::v3::concepts::models<ranges::v3::concepts::View, T>::type:: value)>::type:: value || true), (typename ranges::v3::concepts::models<ranges::v3::concepts::MoveConstructible, T>::type:: value || true), (typename ranges::v3::concepts::models<ranges::v3::concepts::ConvertibleTo, typename ranges::v3::value_type<decltype (ranges::v3::function_objects::{anonymous}::begin(declval<const D&>()))>::type, typename ranges::v3::value_type<decltype (ranges::v3::function_objects::{anonymous}::begin(declval<T&>()))>::type>::type:: value || true), (typename ranges::v3::concepts::models<ranges::v3::concepts::Constructible, Container, typename meta::v1::detail::_if_<meta::v1::list<std::is_same<decltype (ranges::v3::function_objects::{anonymous}::begin(declval<const D&>())), decltype (ranges::v3::function_objects::{anonymous}::end(declval<const D&>()))>, decltype (ranges::v3::function_objects::{anonymous}::begin(declval<const D&>())), ranges::v3::_common_iterator_::common_iterator<decltype (ranges::v3::function_objects::{anonymous}::begin(declval<const D&>())), decltype (ranges::v3::function_objects::{anonymous}::end(declval<const D&>()))> >, std::integral_constant<bool, true> >::type, typename meta::v1::detail::_if_<meta::v1::list<std::is_same<decltype (ranges::v3::function_objects::{anonymous}::begin(declval<const D&>())), decltype (ranges::v3::function_objects::{anonymous}::end(declval<const D&>()))>, decltype (ranges::v3::function_objects::{anonymous}::begin(declval<const D&>())), ranges::v3::_common_iterator_::common_iterator<decltype (ranges::v3::function_objects::{anonymous}::begin(declval<const D&>())), decltype (ranges::v3::function_objects::{anonymous}::end(declval<const D&>()))> >, std::integral_constant<bool, true> >::type>::type:: value || true)> >()), int>::type <anonymous> = <missing>]’:
/usr/include/range/v3/utility/invoke.hpp:125:13: required by substitution of ‘template<class F, class ... Args, typename meta::v1::detail::_if_<meta::v1::list<std::integral_constant<bool, (! std::is_member_pointer<typename std::remove_cv<typename std::remove_reference<_From>::type>::type>::value)>, int>, std::integral_constant<bool, true> >::type <anonymous> > constexpr decltype (static_cast<F&&>(fn)(*static_cast<Args&>(ranges::v3::invoke_fn::operator()::args) ...)) ranges::v3::invoke_fn::operator()(F&&, Args&& ...) const [with F = main(int, char**)::<lambda(const auto:1&)>&; Args = {ranges::v3::take_while_view<ranges::v3::iterator_range<__gnu_cxx::__normal_iterator<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, __gnu_cxx::__normal_iterator<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >, ranges::v3::group_by_view<ranges::v3::iterator_range<__gnu_cxx::__normal_iterator<const std::__cxx11::basic_string<char>*, std::vector<std::__cxx11::basic_string<char> > >, __gnu_cxx::__normal_iterator<const std::__cxx11::basic_string<char>*, std::vector<std::__cxx11::basic_string<char> > > >, std::equal_to<void> >::cursor<true>::pred>}; typename meta::v1::detail::_if_<meta::v1::list<std::integral_constant<bool, (! std::is_member_pointer<typename std::remove_cv<typename std::remove_reference<_From>::type>::type>::value)>, int>, std::integral_constant<bool, true> >::type <anonymous> = 0]’
/usr/include/range/v3/utility/invoke.hpp:215:28: required by substitution of ‘template<class Rng, class Fun, int _concept_requires_472, typename std::enable_if<((_concept_requires_472 == 43) || (! typename meta::v1::defer<meta::v1::detail::_and_<false>::invoke, ranges::v3::concepts::models<ranges::v3::concepts::InputRange, T>, ranges::v3::concepts::models<ranges::v3::concepts::CopyConstructible, Proj>, ranges::v3::concepts::models<ranges::v3::concepts::Invocable, Fun&, decltype (* declval<decltype (ranges::v3::function_objects::{anonymous}::begin(declval<T&>()))&>())>, std::integral_constant<bool, (! typename ranges::v3::concepts::Same::same<void, typename ranges::v3::result_of<Fun&(decltype (* declval<decltype (ranges::v3::function_objects::{anonymous}::begin(declval<T&>()))&>())&&), void>::type>::type::type:: value)> >::type())), int>::type <anonymous> > void ranges::v3::view::transform_fn::operator()(Rng&&, Fun) const [with Rng = ranges::v3::group_by_view<ranges::v3::iterator_range<__gnu_cxx::__normal_iterator<const std::__cxx11::basic_string<char>*, std::vector<std::__cxx11::basic_string<char> > >, __gnu_cxx::__normal_iterator<const std::__cxx11::basic_string<char>*, std::vector<std::__cxx11::basic_string<char> > > >, std::equal_to<void> >; Fun = main(int, char**)::<lambda(const auto:1&)>; int _concept_requires_472 = 42; typename std::enable_if<((_concept_requires_472 == 43) || (! typename meta::v1::defer<meta::v1::detail::_and_<false>::invoke, ranges::v3::concepts::models<ranges::v3::concepts::InputRange, T>, ranges::v3::concepts::models<ranges::v3::concepts::CopyConstructible, Proj>, ranges::v3::concepts::models<ranges::v3::concepts::Invocable, Fun&, decltype (* declval<decltype (ranges::v3::function_objects::{anonymous}::begin(declval<T&>()))&>())>, std::integral_constant<bool, (! typename ranges::v3::concepts::Same::same<void, typename ranges::v3::result_of<Fun&(decltype (* declval<decltype (ranges::v3::function_objects::{anonymous}::begin(declval<T&>()))&>())&&), void>::type>::type::type:: value)> >::type())), int>::type <anonymous> = <missing>]’
/usr/include/c++/5/functional:1167:64: required by substitution of ‘template<class ... _Args, class _Result> _Result std::_Bind<_Functor(_Bound_args ...)>::operator()(_Args&& ...) const volatile [with _Args = {ranges::v3::group_by_view<ranges::v3::iterator_range<__gnu_cxx::__normal_iterator<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, __gnu_cxx::__normal_iterator<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >, std::equal_to<void> >}; _Result = <missing>]’
/usr/include/range/v3/utility/invoke.hpp:125:13: required by substitution of ‘template<class F, class ... Args, typename meta::v1::detail::_if_<meta::v1::list<std::integral_constant<bool, (! std::is_member_pointer<typename std::remove_cv<typename std::remove_reference<_From>::type>::type>::value)>, int>, std::integral_constant<bool, true> >::type <anonymous> > constexpr decltype (static_cast<F&&>(fn)(*static_cast<Args&>(ranges::v3::invoke_fn::operator()::args) ...)) ranges::v3::invoke_fn::operator()(F&&, Args&& ...) const [with F = ranges::v3::detail::pipeable_binder<std::_Bind<ranges::v3::view::transform_fn(std::_Placeholder<1>, main(int, char**)::<lambda(const auto:1&)>smilie> >&; Args = {ranges::v3::group_by_view<ranges::v3::iterator_range<__gnu_cxx::__normal_iterator<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, __gnu_cxx::__normal_iterator<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >, std::equal_to<void> >}; typename meta::v1::detail::_if_<meta::v1::list<std::integral_constant<bool, (! std::is_member_pointer<typename std::remove_cv<typename std::remove_reference<_From>::type>::type>::value)>, int>, std::integral_constant<bool, true> >::type <anonymous> = 0]’
/usr/include/range/v3/utility/invoke.hpp:215:28: required by substitution of ‘template<class T> T ranges::v3::detail::gcc_bugs_bugs_bugs(T) [with T = <missing>]’
/usr/include/range/v3/utility/concepts.hpp:111:55: [ skipping 5 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/meta/meta.hpp:651:26: required by substitution of ‘template<template<class ...> class C, class ... Ts, template<class ...> class D> meta::v1::id<D<Ts ...> > meta::v1::detail::try_defer_(int) [with C = meta::v1::detail::_and_<false>::invoke; Ts = {std::integral_constant<bool, true>, ranges::v3::concepts::models<ranges::v3::concepts::Invocable, ranges::v3::detail::pipeable_binder<std::_Bind<ranges::v3::view::transform_fn(std::_Placeholder<1>, main(int, char**)::<lambda(const auto:1&)>smilie> >&, ranges::v3::group_by_view<ranges::v3::iterator_range<__gnu_cxx::__normal_iterator<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, __gnu_cxx::__normal_iterator<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >, std::equal_to<void> > >}; D = meta::v1::detail::_and_<false>::invoke]’
/usr/include/meta/meta.hpp:656:65: required by substitution of ‘template<template<class ...> class C, class ... Ts> using defer_ = decltype (try_defer_<template<class ...> class C, Ts ...>(0)) [with C = meta::v1::detail::_and_<false>::invoke; Ts = {std::integral_constant<bool, true>, ranges::v3::concepts::models<ranges::v3::concepts::Invocable, ranges::v3::detail::pipeable_binder<std::_Bind<ranges::v3::view::transform_fn(std::_Placeholder<1>, main(int, char**)::<lambda(const auto:1&)>smilie> >&, ranges::v3::group_by_view<ranges::v3::iterator_range<__gnu_cxx::__normal_iterator<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, __gnu_cxx::__normal_iterator<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >, std::equal_to<void> > >}]’
/usr/include/meta/meta.hpp:703:16: required from ‘struct meta::v1::defer<meta::v1::detail::_and_<false>::invoke, std::integral_constant<bool, true>, ranges::v3::concepts::models<ranges::v3::concepts::Invocable, ranges::v3::detail::pipeable_binder<std::_Bind<ranges::v3::view::transform_fn(std::_Placeholder<1>, main(int, char**)::<lambda(const auto:1&)>smilie> >&, ranges::v3::group_by_view<ranges::v3::iterator_range<__gnu_cxx::__normal_iterator<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, __gnu_cxx::__normal_iterator<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >, std::equal_to<void> > > >’
/usr/include/range/v3/view/view.hpp:90:21: required by substitution of ‘template<class Rng, class Vw, int _concept_requires_90, typename std::enable_if<((_concept_requires_90 == 43) || typename meta::v1::defer<meta::v1::detail::_and_<false>::invoke, typename meta::v1::defer<meta::v1::detail::_and_<false>::invoke, ranges::v3::concepts::models<ranges::v3::concepts::Range, T>, typename meta::v1::defer<meta::v1::detail::_or_<false>::invoke, std::is_lvalue_reference<_Tp>, ranges::v3::concepts::models<ranges::v3::concepts::View, typename std::remove_cv<typename std::remove_reference<_From>::type>::type> >::type>::type, ranges::v3::concepts::models<ranges::v3::concepts::Invocable, ranges::v3::detail::pipeable_binder<std::_Bind<ranges::v3::view::transform_fn(std::_Placeholder<1>, main(int, char**)::<lambda(const auto:1&)>smilie> >&, Rng> >::type()), int>::type <anonymous> > static decltype (v.view_(static_cast<Rng&&>(rng))) ranges::v3::view::view<View>::pipe(Rng&&, Vw&&) [with Rng = ranges::v3::group_by_view<ranges::v3::iterator_range<__gnu_cxx::__normal_iterator<const std::__cxx11::basic_string<char>*, std::vector<std::__cxx11::basic_string<char> > >, __gnu_cxx::__normal_iterator<const std::__cxx11::basic_string<char>*, std::vector<std::__cxx11::basic_string<char> > > >, std::equal_to<void> >; Vw = ranges::v3::view::view<ranges::v3::detail::pipeable_binder<std::_Bind<ranges::v3::view::transform_fn(std::_Placeholder<1>, main(int, char**)::<lambda(const auto:1&)>smilie> > >&; int _concept_requires_90 = 42; typename std::enable_if<((_concept_requires_90 == 43) || typename meta::v1::defer<meta::v1::detail::_and_<false>::invoke, typename meta::v1::defer<meta::v1::detail::_and_<false>::invoke, ranges::v3::concepts::models<ranges::v3::concepts::Range, T>, typename meta::v1::defer<meta::v1::detail::_or_<false>::invoke, std::is_lvalue_reference<_Tp>, ranges::v3::concepts::models<ranges::v3::concepts::View, typename std::remove_cv<typename std::remove_reference<_From>::type>::type> >::type>::type, ranges::v3::concepts::models<ranges::v3::concepts::Invocable, ranges::v3::detail::pipeable_binder<std::_Bind<ranges::v3::view::transform_fn(std::_Placeholder<1>, main(int, char**)::<lambda(const auto:1&)>smilie> >&, Rng> >::type()), int>::type <anonymous> = <missing>]’
/usr/include/range/v3/utility/functional.hpp:728:9: required by substitution of ‘template<class Arg, class Pipe, int _concept_requires_726, typename std::enable_if<((_concept_requires_726 == 43) || ((! ranges::v3::is_pipeable<T>()) && ranges::v3::is_pipeable<Pipe>())), int>::type <anonymous> > decltype (ranges::v3::pipeable_access::impl<Pipe>::pipe(static_cast<Arg&&>(arg), pipe)) ranges::v3::operator|(Arg&&, Pipe) [with Arg = ranges::v3::group_by_view<ranges::v3::iterator_range<__gnu_cxx::__normal_iterator<const std::__cxx11::basic_string<char>*, std::vector<std::__cxx11::basic_string<char> > >, __gnu_cxx::__normal_iterator<const std::__cxx11::basic_string<char>*, std::vector<std::__cxx11::basic_string<char> > > >, std::equal_to<void> >; Pipe = ranges::v3::view::view<ranges::v3::detail::pipeable_binder<std::_Bind<ranges::v3::view::transform_fn(std::_Placeholder<1>, main(int, char**)::<lambda(const auto:1&)>smilie> > >; int _concept_requires_726 = 42; typename std::enable_if<((_concept_requires_726 == 43) || ((! ranges::v3::is_pipeable<T>()) && ranges::v3::is_pipeable<Pipe>())), int>::type <anonymous> = 0]’
main.cpp:59:8: required from here
/usr/include/range/v3/view_interface.hpp:374:17: internal compiler error: in dependent_type_p, at cp/pt.c:21229
typename = typename Container::allocator_type, // HACKHACK
^
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-5/README.Bugs> for instructions.



The range-v3 version is the one downloadable here in zip format : https://github.com/ericniebler/range-v3
Ubuntu 16.04 Server Edition
gcc version: gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.9)
Ivan Cukic (71) [Avatar] Offline
#2
Whenever you see 'internal compiler error', this means that you have found a bug in the compiler itself.

My advice is to update GCC as it progressed significantly since the 5.x series - the latest version is 7.3.