The Author Online Book Forums are Moving

The Author Online Book Forums will soon redirect to Manning's liveBook and liveVideo. All book forum content will migrate to liveBook's discussion forum and all video forum content will migrate to liveVideo. Log in to liveBook or liveVideo with your Manning credentials to join the discussion!

Thank you for your engagement in the AoF over the years! We look forward to offering you a more enhanced forum experience.

265818 (18) [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 (104) [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.
265818 (18) [Avatar] Offline
#3
I updated gcc to gcc 7.2.0 and this problem is "solved"
Thank you very much