Making check in src make check-recursive CXX bin/eolian_mono/bin_eolian_mono_eolian_mono-eolian_mono.o In file included from ../../src/bin/eolian_mono/eolian_mono/klass.hh:12:0, from ../../src/bin/eolian_mono/eolian_mono.cc:25: ../../src/bin/eolian_mono/eolian_mono/function_definition.hh: In member function ‘bool eolian_mono::function_definition_generator::generate(OutputIterator, const efl::eolian::grammar::attributes::function_def&, const Context&) const’: ../../src/bin/eolian_mono/eolian_mono/function_definition.hh:40:96: error: expected ‘)’ before string constant << (return_type == "void" ? "":"return ") << string << "(handle" << *(", " << argument)");" ^~~~ In file included from ../../src/lib/eolian_cxx/grammar/klass_def.hpp:7:0, from ../../src/bin/eolian_mono/eolian_mono/klass.hh:5, from ../../src/bin/eolian_mono/eolian_mono.cc:25: ../../src/lib/eolian_cxx/grammar/string.hpp: In instantiation of ‘bool efl::eolian::grammar::string_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator > >; Context = efl::eolian::grammar::context_cons]’: ../../src/bin/eolian_mono/eolian_mono/parameter.hh:33:91: required from ‘bool eolian_mono::argument_generator::generate(OutputIterator, const efl::eolian::grammar::attributes::parameter_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/lib/eolian_cxx/grammar/attributes.hpp:180:48: required from ‘bool efl::eolian::grammar::attributes::generate(const Generator&, OutputIterator, const Attribute&, const Context&, typename std::enable_if<((! efl::eolian::grammar::type_traits::is_explicit_tuple::value) && (efl::eolian::grammar::type_traits::attributes_needed::value != 0))>::type*) [with Generator = eolian_mono::argument_generator; OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; typename std::enable_if<((! efl::eolian::grammar::type_traits::is_explicit_tuple::value) && (efl::eolian::grammar::type_traits::attributes_needed::value != 0))>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:26:36: required from ‘bool efl::eolian::grammar::generate_sequence(const L&, const R&, OutputIterator, const Attribute&, const Context&, typename std::enable_if::value>::type*) [with L = const char*; R = eolian_mono::argument_generator; OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; typename std::enable_if::value>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:109:40: required from ‘bool efl::eolian::grammar::sequence_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; L = const char*; R = eolian_mono::argument_generator]’ ../../src/lib/eolian_cxx/grammar/kleene.hpp:20:14: [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ] ../../src/lib/eolian_cxx/grammar/sequence.hpp:26:36: required from ‘bool efl::eolian::grammar::generate_sequence(const L&, const R&, OutputIterator, const Attribute&, const Context&, typename std::enable_if::value>::type*) [with L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >, const char*>, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>; R = efl::eolian::grammar::kleene_generator >; OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; typename std::enable_if::value>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:109:40: required from ‘bool efl::eolian::grammar::sequence_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >, const char*>, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>; R = efl::eolian::grammar::kleene_generator >]’ ../../src/bin/eolian_mono/eolian_mono/function_definition.hh:37:8: required from ‘bool eolian_mono::function_definition_generator::generate(OutputIterator, const efl::eolian::grammar::attributes::function_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/lib/eolian_cxx/grammar/kleene.hpp:20:14: required from ‘bool efl::eolian::grammar::kleene_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::vector; Context = efl::eolian::grammar::context_cons; Generator = eolian_mono::function_definition_generator]’ ../../src/bin/eolian_mono/eolian_mono/klass.hh:112:13: required from ‘bool eolian_mono::klass::generate(OutputIterator, const efl::eolian::grammar::attributes::klass_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/bin/eolian_mono/eolian_mono.cc:95:139: required from here ../../src/lib/eolian_cxx/grammar/string.hpp:55:36: error: no matching function for call to ‘begin(const std::tuple, std::allocator > >&)’ std::transform(std::begin(attribute), std::end(attribute), sink, &::toupper); ~~~~~~~~~~^~~~~~~~~~~ In file included from /usr/include/c++/6.2.1/bits/range_access.h:36:0, from /usr/include/c++/6.2.1/string:51, from /usr/include/c++/6.2.1/bits/locale_classes.h:40, from /usr/include/c++/6.2.1/bits/ios_base.h:41, from /usr/include/c++/6.2.1/ios:42, from /usr/include/c++/6.2.1/ostream:38, from /usr/include/c++/6.2.1/iostream:39, from ../../src/bin/eolian_mono/eolian_mono.cc:2: /usr/include/c++/6.2.1/initializer_list:89:5: note: candidate: template constexpr const _Tp* std::begin(std::initializer_list<_Tp>) begin(initializer_list<_Tp> __ils) noexcept ^~~~~ /usr/include/c++/6.2.1/initializer_list:89:5: note: template argument deduction/substitution failed: In file included from ../../src/lib/eolian_cxx/grammar/klass_def.hpp:7:0, from ../../src/bin/eolian_mono/eolian_mono/klass.hh:5, from ../../src/bin/eolian_mono/eolian_mono.cc:25: ../../src/lib/eolian_cxx/grammar/string.hpp:55:36: note: ‘std::tuple, std::allocator > >’ is not derived from ‘std::initializer_list<_Tp>’ std::transform(std::begin(attribute), std::end(attribute), sink, &::toupper); ~~~~~~~~~~^~~~~~~~~~~ In file included from /usr/include/c++/6.2.1/string:51:0, from /usr/include/c++/6.2.1/bits/locale_classes.h:40, from /usr/include/c++/6.2.1/bits/ios_base.h:41, from /usr/include/c++/6.2.1/ios:42, from /usr/include/c++/6.2.1/ostream:38, from /usr/include/c++/6.2.1/iostream:39, from ../../src/bin/eolian_mono/eolian_mono.cc:2: /usr/include/c++/6.2.1/bits/range_access.h:48:5: note: candidate: template decltype (__cont.begin()) std::begin(_Container&) begin(_Container& __cont) -> decltype(__cont.begin()) ^~~~~ /usr/include/c++/6.2.1/bits/range_access.h:48:5: note: template argument deduction/substitution failed: /usr/include/c++/6.2.1/bits/range_access.h: In substitution of ‘template decltype (__cont.begin()) std::begin(_Container&) [with _Container = const std::tuple, std::allocator > >]’: ../../src/lib/eolian_cxx/grammar/string.hpp:55:36: required from ‘bool efl::eolian::grammar::string_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator > >; Context = efl::eolian::grammar::context_cons]’ ../../src/bin/eolian_mono/eolian_mono/parameter.hh:33:91: required from ‘bool eolian_mono::argument_generator::generate(OutputIterator, const efl::eolian::grammar::attributes::parameter_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/lib/eolian_cxx/grammar/attributes.hpp:180:48: required from ‘bool efl::eolian::grammar::attributes::generate(const Generator&, OutputIterator, const Attribute&, const Context&, typename std::enable_if<((! efl::eolian::grammar::type_traits::is_explicit_tuple::value) && (efl::eolian::grammar::type_traits::attributes_needed::value != 0))>::type*) [with Generator = eolian_mono::argument_generator; OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; typename std::enable_if<((! efl::eolian::grammar::type_traits::is_explicit_tuple::value) && (efl::eolian::grammar::type_traits::attributes_needed::value != 0))>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:26:36: required from ‘bool efl::eolian::grammar::generate_sequence(const L&, const R&, OutputIterator, const Attribute&, const Context&, typename std::enable_if::value>::type*) [with L = const char*; R = eolian_mono::argument_generator; OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; typename std::enable_if::value>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:109:40: required from ‘bool efl::eolian::grammar::sequence_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; L = const char*; R = eolian_mono::argument_generator]’ ../../src/lib/eolian_cxx/grammar/kleene.hpp:20:14: [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ] ../../src/lib/eolian_cxx/grammar/sequence.hpp:26:36: required from ‘bool efl::eolian::grammar::generate_sequence(const L&, const R&, OutputIterator, const Attribute&, const Context&, typename std::enable_if::value>::type*) [with L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >, const char*>, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>; R = efl::eolian::grammar::kleene_generator >; OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; typename std::enable_if::value>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:109:40: required from ‘bool efl::eolian::grammar::sequence_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >, const char*>, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>; R = efl::eolian::grammar::kleene_generator >]’ ../../src/bin/eolian_mono/eolian_mono/function_definition.hh:37:8: required from ‘bool eolian_mono::function_definition_generator::generate(OutputIterator, const efl::eolian::grammar::attributes::function_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/lib/eolian_cxx/grammar/kleene.hpp:20:14: required from ‘bool efl::eolian::grammar::kleene_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::vector; Context = efl::eolian::grammar::context_cons; Generator = eolian_mono::function_definition_generator]’ ../../src/bin/eolian_mono/eolian_mono/klass.hh:112:13: required from ‘bool eolian_mono::klass::generate(OutputIterator, const efl::eolian::grammar::attributes::klass_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/bin/eolian_mono/eolian_mono.cc:95:139: required from here /usr/include/c++/6.2.1/bits/range_access.h:48:50: error: ‘const class std::tuple, std::allocator > >’ has no member named ‘begin’ begin(_Container& __cont) -> decltype(__cont.begin()) ~~~~~~~^~~~~ ../../src/lib/eolian_cxx/grammar/string.hpp: In instantiation of ‘bool efl::eolian::grammar::string_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator > >; Context = efl::eolian::grammar::context_cons]’: ../../src/bin/eolian_mono/eolian_mono/parameter.hh:33:91: required from ‘bool eolian_mono::argument_generator::generate(OutputIterator, const efl::eolian::grammar::attributes::parameter_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/lib/eolian_cxx/grammar/attributes.hpp:180:48: required from ‘bool efl::eolian::grammar::attributes::generate(const Generator&, OutputIterator, const Attribute&, const Context&, typename std::enable_if<((! efl::eolian::grammar::type_traits::is_explicit_tuple::value) && (efl::eolian::grammar::type_traits::attributes_needed::value != 0))>::type*) [with Generator = eolian_mono::argument_generator; OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; typename std::enable_if<((! efl::eolian::grammar::type_traits::is_explicit_tuple::value) && (efl::eolian::grammar::type_traits::attributes_needed::value != 0))>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:26:36: required from ‘bool efl::eolian::grammar::generate_sequence(const L&, const R&, OutputIterator, const Attribute&, const Context&, typename std::enable_if::value>::type*) [with L = const char*; R = eolian_mono::argument_generator; OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; typename std::enable_if::value>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:109:40: required from ‘bool efl::eolian::grammar::sequence_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; L = const char*; R = eolian_mono::argument_generator]’ ../../src/lib/eolian_cxx/grammar/kleene.hpp:20:14: [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ] ../../src/lib/eolian_cxx/grammar/sequence.hpp:26:36: required from ‘bool efl::eolian::grammar::generate_sequence(const L&, const R&, OutputIterator, const Attribute&, const Context&, typename std::enable_if::value>::type*) [with L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >, const char*>, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>; R = efl::eolian::grammar::kleene_generator >; OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; typename std::enable_if::value>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:109:40: required from ‘bool efl::eolian::grammar::sequence_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >, const char*>, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>; R = efl::eolian::grammar::kleene_generator >]’ ../../src/bin/eolian_mono/eolian_mono/function_definition.hh:37:8: required from ‘bool eolian_mono::function_definition_generator::generate(OutputIterator, const efl::eolian::grammar::attributes::function_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/lib/eolian_cxx/grammar/kleene.hpp:20:14: required from ‘bool efl::eolian::grammar::kleene_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::vector; Context = efl::eolian::grammar::context_cons; Generator = eolian_mono::function_definition_generator]’ ../../src/bin/eolian_mono/eolian_mono/klass.hh:112:13: required from ‘bool eolian_mono::klass::generate(OutputIterator, const efl::eolian::grammar::attributes::klass_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/bin/eolian_mono/eolian_mono.cc:95:139: required from here /usr/include/c++/6.2.1/bits/range_access.h:58:5: note: candidate: template decltype (__cont.begin()) std::begin(const _Container&) begin(const _Container& __cont) -> decltype(__cont.begin()) ^~~~~ /usr/include/c++/6.2.1/bits/range_access.h:58:5: note: template argument deduction/substitution failed: /usr/include/c++/6.2.1/bits/range_access.h: In substitution of ‘template decltype (__cont.begin()) std::begin(const _Container&) [with _Container = std::tuple, std::allocator > >]’: ../../src/lib/eolian_cxx/grammar/string.hpp:55:36: required from ‘bool efl::eolian::grammar::string_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator > >; Context = efl::eolian::grammar::context_cons]’ ../../src/bin/eolian_mono/eolian_mono/parameter.hh:33:91: required from ‘bool eolian_mono::argument_generator::generate(OutputIterator, const efl::eolian::grammar::attributes::parameter_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/lib/eolian_cxx/grammar/attributes.hpp:180:48: required from ‘bool efl::eolian::grammar::attributes::generate(const Generator&, OutputIterator, const Attribute&, const Context&, typename std::enable_if<((! efl::eolian::grammar::type_traits::is_explicit_tuple::value) && (efl::eolian::grammar::type_traits::attributes_needed::value != 0))>::type*) [with Generator = eolian_mono::argument_generator; OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; typename std::enable_if<((! efl::eolian::grammar::type_traits::is_explicit_tuple::value) && (efl::eolian::grammar::type_traits::attributes_needed::value != 0))>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:26:36: required from ‘bool efl::eolian::grammar::generate_sequence(const L&, const R&, OutputIterator, const Attribute&, const Context&, typename std::enable_if::value>::type*) [with L = const char*; R = eolian_mono::argument_generator; OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; typename std::enable_if::value>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:109:40: required from ‘bool efl::eolian::grammar::sequence_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; L = const char*; R = eolian_mono::argument_generator]’ ../../src/lib/eolian_cxx/grammar/kleene.hpp:20:14: [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ] ../../src/lib/eolian_cxx/grammar/sequence.hpp:26:36: required from ‘bool efl::eolian::grammar::generate_sequence(const L&, const R&, OutputIterator, const Attribute&, const Context&, typename std::enable_if::value>::type*) [with L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >, const char*>, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>; R = efl::eolian::grammar::kleene_generator >; OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; typename std::enable_if::value>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:109:40: required from ‘bool efl::eolian::grammar::sequence_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >, const char*>, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>; R = efl::eolian::grammar::kleene_generator >]’ ../../src/bin/eolian_mono/eolian_mono/function_definition.hh:37:8: required from ‘bool eolian_mono::function_definition_generator::generate(OutputIterator, const efl::eolian::grammar::attributes::function_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/lib/eolian_cxx/grammar/kleene.hpp:20:14: required from ‘bool efl::eolian::grammar::kleene_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::vector; Context = efl::eolian::grammar::context_cons; Generator = eolian_mono::function_definition_generator]’ ../../src/bin/eolian_mono/eolian_mono/klass.hh:112:13: required from ‘bool eolian_mono::klass::generate(OutputIterator, const efl::eolian::grammar::attributes::klass_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/bin/eolian_mono/eolian_mono.cc:95:139: required from here /usr/include/c++/6.2.1/bits/range_access.h:58:56: error: ‘const class std::tuple, std::allocator > >’ has no member named ‘begin’ begin(const _Container& __cont) -> decltype(__cont.begin()) ~~~~~~~^~~~~ ../../src/lib/eolian_cxx/grammar/string.hpp: In instantiation of ‘bool efl::eolian::grammar::string_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator > >; Context = efl::eolian::grammar::context_cons]’: ../../src/bin/eolian_mono/eolian_mono/parameter.hh:33:91: required from ‘bool eolian_mono::argument_generator::generate(OutputIterator, const efl::eolian::grammar::attributes::parameter_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/lib/eolian_cxx/grammar/attributes.hpp:180:48: required from ‘bool efl::eolian::grammar::attributes::generate(const Generator&, OutputIterator, const Attribute&, const Context&, typename std::enable_if<((! efl::eolian::grammar::type_traits::is_explicit_tuple::value) && (efl::eolian::grammar::type_traits::attributes_needed::value != 0))>::type*) [with Generator = eolian_mono::argument_generator; OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; typename std::enable_if<((! efl::eolian::grammar::type_traits::is_explicit_tuple::value) && (efl::eolian::grammar::type_traits::attributes_needed::value != 0))>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:26:36: required from ‘bool efl::eolian::grammar::generate_sequence(const L&, const R&, OutputIterator, const Attribute&, const Context&, typename std::enable_if::value>::type*) [with L = const char*; R = eolian_mono::argument_generator; OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; typename std::enable_if::value>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:109:40: required from ‘bool efl::eolian::grammar::sequence_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; L = const char*; R = eolian_mono::argument_generator]’ ../../src/lib/eolian_cxx/grammar/kleene.hpp:20:14: [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ] ../../src/lib/eolian_cxx/grammar/sequence.hpp:26:36: required from ‘bool efl::eolian::grammar::generate_sequence(const L&, const R&, OutputIterator, const Attribute&, const Context&, typename std::enable_if::value>::type*) [with L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >, const char*>, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>; R = efl::eolian::grammar::kleene_generator >; OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; typename std::enable_if::value>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:109:40: required from ‘bool efl::eolian::grammar::sequence_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >, const char*>, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>; R = efl::eolian::grammar::kleene_generator >]’ ../../src/bin/eolian_mono/eolian_mono/function_definition.hh:37:8: required from ‘bool eolian_mono::function_definition_generator::generate(OutputIterator, const efl::eolian::grammar::attributes::function_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/lib/eolian_cxx/grammar/kleene.hpp:20:14: required from ‘bool efl::eolian::grammar::kleene_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::vector; Context = efl::eolian::grammar::context_cons; Generator = eolian_mono::function_definition_generator]’ ../../src/bin/eolian_mono/eolian_mono/klass.hh:112:13: required from ‘bool eolian_mono::klass::generate(OutputIterator, const efl::eolian::grammar::attributes::klass_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/bin/eolian_mono/eolian_mono.cc:95:139: required from here /usr/include/c++/6.2.1/bits/range_access.h:87:5: note: candidate: template constexpr _Tp* std::begin(_Tp (&)[_Nm]) begin(_Tp (&__arr)[_Nm]) ^~~~~ /usr/include/c++/6.2.1/bits/range_access.h:87:5: note: template argument deduction/substitution failed: In file included from ../../src/lib/eolian_cxx/grammar/klass_def.hpp:7:0, from ../../src/bin/eolian_mono/eolian_mono/klass.hh:5, from ../../src/bin/eolian_mono/eolian_mono.cc:25: ../../src/lib/eolian_cxx/grammar/string.hpp:55:36: note: mismatched types ‘_Tp [_Nm]’ and ‘const std::tuple, std::allocator > >’ std::transform(std::begin(attribute), std::end(attribute), sink, &::toupper); ~~~~~~~~~~^~~~~~~~~~~ In file included from /usr/include/c++/6.2.1/string:51:0, from /usr/include/c++/6.2.1/bits/locale_classes.h:40, from /usr/include/c++/6.2.1/bits/ios_base.h:41, from /usr/include/c++/6.2.1/ios:42, from /usr/include/c++/6.2.1/ostream:38, from /usr/include/c++/6.2.1/iostream:39, from ../../src/bin/eolian_mono/eolian_mono.cc:2: /usr/include/c++/6.2.1/bits/range_access.h:104:31: note: candidate: template _Tp* std::begin(std::valarray<_Tp>&) template _Tp* begin(valarray<_Tp>&); ^~~~~ /usr/include/c++/6.2.1/bits/range_access.h:104:31: note: template argument deduction/substitution failed: In file included from ../../src/lib/eolian_cxx/grammar/klass_def.hpp:7:0, from ../../src/bin/eolian_mono/eolian_mono/klass.hh:5, from ../../src/bin/eolian_mono/eolian_mono.cc:25: ../../src/lib/eolian_cxx/grammar/string.hpp:55:36: note: types ‘std::valarray<_Tp>’ and ‘const std::tuple, std::allocator > >’ have incompatible cv-qualifiers std::transform(std::begin(attribute), std::end(attribute), sink, &::toupper); ~~~~~~~~~~^~~~~~~~~~~ In file included from /usr/include/c++/6.2.1/string:51:0, from /usr/include/c++/6.2.1/bits/locale_classes.h:40, from /usr/include/c++/6.2.1/bits/ios_base.h:41, from /usr/include/c++/6.2.1/ios:42, from /usr/include/c++/6.2.1/ostream:38, from /usr/include/c++/6.2.1/iostream:39, from ../../src/bin/eolian_mono/eolian_mono.cc:2: /usr/include/c++/6.2.1/bits/range_access.h:105:37: note: candidate: template const _Tp* std::begin(const std::valarray<_Tp>&) template const _Tp* begin(const valarray<_Tp>&); ^~~~~ /usr/include/c++/6.2.1/bits/range_access.h:105:37: note: template argument deduction/substitution failed: In file included from ../../src/lib/eolian_cxx/grammar/klass_def.hpp:7:0, from ../../src/bin/eolian_mono/eolian_mono/klass.hh:5, from ../../src/bin/eolian_mono/eolian_mono.cc:25: ../../src/lib/eolian_cxx/grammar/string.hpp:55:36: note: ‘const std::tuple, std::allocator > >’ is not derived from ‘const std::valarray<_Tp>’ std::transform(std::begin(attribute), std::end(attribute), sink, &::toupper); ~~~~~~~~~~^~~~~~~~~~~ ../../src/lib/eolian_cxx/grammar/string.hpp:55:57: error: no matching function for call to ‘end(const std::tuple, std::allocator > >&)’ std::transform(std::begin(attribute), std::end(attribute), sink, &::toupper); ~~~~~~~~^~~~~~~~~~~ In file included from /usr/include/c++/6.2.1/bits/range_access.h:36:0, from /usr/include/c++/6.2.1/string:51, from /usr/include/c++/6.2.1/bits/locale_classes.h:40, from /usr/include/c++/6.2.1/bits/ios_base.h:41, from /usr/include/c++/6.2.1/ios:42, from /usr/include/c++/6.2.1/ostream:38, from /usr/include/c++/6.2.1/iostream:39, from ../../src/bin/eolian_mono/eolian_mono.cc:2: /usr/include/c++/6.2.1/initializer_list:99:5: note: candidate: template constexpr const _Tp* std::end(std::initializer_list<_Tp>) end(initializer_list<_Tp> __ils) noexcept ^~~ /usr/include/c++/6.2.1/initializer_list:99:5: note: template argument deduction/substitution failed: In file included from ../../src/lib/eolian_cxx/grammar/klass_def.hpp:7:0, from ../../src/bin/eolian_mono/eolian_mono/klass.hh:5, from ../../src/bin/eolian_mono/eolian_mono.cc:25: ../../src/lib/eolian_cxx/grammar/string.hpp:55:57: note: ‘std::tuple, std::allocator > >’ is not derived from ‘std::initializer_list<_Tp>’ std::transform(std::begin(attribute), std::end(attribute), sink, &::toupper); ~~~~~~~~^~~~~~~~~~~ In file included from /usr/include/c++/6.2.1/string:51:0, from /usr/include/c++/6.2.1/bits/locale_classes.h:40, from /usr/include/c++/6.2.1/bits/ios_base.h:41, from /usr/include/c++/6.2.1/ios:42, from /usr/include/c++/6.2.1/ostream:38, from /usr/include/c++/6.2.1/iostream:39, from ../../src/bin/eolian_mono/eolian_mono.cc:2: /usr/include/c++/6.2.1/bits/range_access.h:68:5: note: candidate: template decltype (__cont.end()) std::end(_Container&) end(_Container& __cont) -> decltype(__cont.end()) ^~~ /usr/include/c++/6.2.1/bits/range_access.h:68:5: note: template argument deduction/substitution failed: /usr/include/c++/6.2.1/bits/range_access.h: In substitution of ‘template decltype (__cont.end()) std::end(_Container&) [with _Container = const std::tuple, std::allocator > >]’: ../../src/lib/eolian_cxx/grammar/string.hpp:55:57: required from ‘bool efl::eolian::grammar::string_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator > >; Context = efl::eolian::grammar::context_cons]’ ../../src/bin/eolian_mono/eolian_mono/parameter.hh:33:91: required from ‘bool eolian_mono::argument_generator::generate(OutputIterator, const efl::eolian::grammar::attributes::parameter_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/lib/eolian_cxx/grammar/attributes.hpp:180:48: required from ‘bool efl::eolian::grammar::attributes::generate(const Generator&, OutputIterator, const Attribute&, const Context&, typename std::enable_if<((! efl::eolian::grammar::type_traits::is_explicit_tuple::value) && (efl::eolian::grammar::type_traits::attributes_needed::value != 0))>::type*) [with Generator = eolian_mono::argument_generator; OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; typename std::enable_if<((! efl::eolian::grammar::type_traits::is_explicit_tuple::value) && (efl::eolian::grammar::type_traits::attributes_needed::value != 0))>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:26:36: required from ‘bool efl::eolian::grammar::generate_sequence(const L&, const R&, OutputIterator, const Attribute&, const Context&, typename std::enable_if::value>::type*) [with L = const char*; R = eolian_mono::argument_generator; OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; typename std::enable_if::value>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:109:40: required from ‘bool efl::eolian::grammar::sequence_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; L = const char*; R = eolian_mono::argument_generator]’ ../../src/lib/eolian_cxx/grammar/kleene.hpp:20:14: [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ] ../../src/lib/eolian_cxx/grammar/sequence.hpp:26:36: required from ‘bool efl::eolian::grammar::generate_sequence(const L&, const R&, OutputIterator, const Attribute&, const Context&, typename std::enable_if::value>::type*) [with L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >, const char*>, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>; R = efl::eolian::grammar::kleene_generator >; OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; typename std::enable_if::value>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:109:40: required from ‘bool efl::eolian::grammar::sequence_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >, const char*>, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>; R = efl::eolian::grammar::kleene_generator >]’ ../../src/bin/eolian_mono/eolian_mono/function_definition.hh:37:8: required from ‘bool eolian_mono::function_definition_generator::generate(OutputIterator, const efl::eolian::grammar::attributes::function_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/lib/eolian_cxx/grammar/kleene.hpp:20:14: required from ‘bool efl::eolian::grammar::kleene_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::vector; Context = efl::eolian::grammar::context_cons; Generator = eolian_mono::function_definition_generator]’ ../../src/bin/eolian_mono/eolian_mono/klass.hh:112:13: required from ‘bool eolian_mono::klass::generate(OutputIterator, const efl::eolian::grammar::attributes::klass_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/bin/eolian_mono/eolian_mono.cc:95:139: required from here /usr/include/c++/6.2.1/bits/range_access.h:68:48: error: ‘const class std::tuple, std::allocator > >’ has no member named ‘end’ end(_Container& __cont) -> decltype(__cont.end()) ~~~~~~~^~~ ../../src/lib/eolian_cxx/grammar/string.hpp: In instantiation of ‘bool efl::eolian::grammar::string_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator > >; Context = efl::eolian::grammar::context_cons]’: ../../src/bin/eolian_mono/eolian_mono/parameter.hh:33:91: required from ‘bool eolian_mono::argument_generator::generate(OutputIterator, const efl::eolian::grammar::attributes::parameter_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/lib/eolian_cxx/grammar/attributes.hpp:180:48: required from ‘bool efl::eolian::grammar::attributes::generate(const Generator&, OutputIterator, const Attribute&, const Context&, typename std::enable_if<((! efl::eolian::grammar::type_traits::is_explicit_tuple::value) && (efl::eolian::grammar::type_traits::attributes_needed::value != 0))>::type*) [with Generator = eolian_mono::argument_generator; OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; typename std::enable_if<((! efl::eolian::grammar::type_traits::is_explicit_tuple::value) && (efl::eolian::grammar::type_traits::attributes_needed::value != 0))>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:26:36: required from ‘bool efl::eolian::grammar::generate_sequence(const L&, const R&, OutputIterator, const Attribute&, const Context&, typename std::enable_if::value>::type*) [with L = const char*; R = eolian_mono::argument_generator; OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; typename std::enable_if::value>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:109:40: required from ‘bool efl::eolian::grammar::sequence_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; L = const char*; R = eolian_mono::argument_generator]’ ../../src/lib/eolian_cxx/grammar/kleene.hpp:20:14: [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ] ../../src/lib/eolian_cxx/grammar/sequence.hpp:26:36: required from ‘bool efl::eolian::grammar::generate_sequence(const L&, const R&, OutputIterator, const Attribute&, const Context&, typename std::enable_if::value>::type*) [with L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >, const char*>, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>; R = efl::eolian::grammar::kleene_generator >; OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; typename std::enable_if::value>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:109:40: required from ‘bool efl::eolian::grammar::sequence_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >, const char*>, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>; R = efl::eolian::grammar::kleene_generator >]’ ../../src/bin/eolian_mono/eolian_mono/function_definition.hh:37:8: required from ‘bool eolian_mono::function_definition_generator::generate(OutputIterator, const efl::eolian::grammar::attributes::function_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/lib/eolian_cxx/grammar/kleene.hpp:20:14: required from ‘bool efl::eolian::grammar::kleene_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::vector; Context = efl::eolian::grammar::context_cons; Generator = eolian_mono::function_definition_generator]’ ../../src/bin/eolian_mono/eolian_mono/klass.hh:112:13: required from ‘bool eolian_mono::klass::generate(OutputIterator, const efl::eolian::grammar::attributes::klass_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/bin/eolian_mono/eolian_mono.cc:95:139: required from here /usr/include/c++/6.2.1/bits/range_access.h:78:5: note: candidate: template decltype (__cont.end()) std::end(const _Container&) end(const _Container& __cont) -> decltype(__cont.end()) ^~~ /usr/include/c++/6.2.1/bits/range_access.h:78:5: note: template argument deduction/substitution failed: /usr/include/c++/6.2.1/bits/range_access.h: In substitution of ‘template decltype (__cont.end()) std::end(const _Container&) [with _Container = std::tuple, std::allocator > >]’: ../../src/lib/eolian_cxx/grammar/string.hpp:55:57: required from ‘bool efl::eolian::grammar::string_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator > >; Context = efl::eolian::grammar::context_cons]’ ../../src/bin/eolian_mono/eolian_mono/parameter.hh:33:91: required from ‘bool eolian_mono::argument_generator::generate(OutputIterator, const efl::eolian::grammar::attributes::parameter_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/lib/eolian_cxx/grammar/attributes.hpp:180:48: required from ‘bool efl::eolian::grammar::attributes::generate(const Generator&, OutputIterator, const Attribute&, const Context&, typename std::enable_if<((! efl::eolian::grammar::type_traits::is_explicit_tuple::value) && (efl::eolian::grammar::type_traits::attributes_needed::value != 0))>::type*) [with Generator = eolian_mono::argument_generator; OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; typename std::enable_if<((! efl::eolian::grammar::type_traits::is_explicit_tuple::value) && (efl::eolian::grammar::type_traits::attributes_needed::value != 0))>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:26:36: required from ‘bool efl::eolian::grammar::generate_sequence(const L&, const R&, OutputIterator, const Attribute&, const Context&, typename std::enable_if::value>::type*) [with L = const char*; R = eolian_mono::argument_generator; OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; typename std::enable_if::value>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:109:40: required from ‘bool efl::eolian::grammar::sequence_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; L = const char*; R = eolian_mono::argument_generator]’ ../../src/lib/eolian_cxx/grammar/kleene.hpp:20:14: [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ] ../../src/lib/eolian_cxx/grammar/sequence.hpp:26:36: required from ‘bool efl::eolian::grammar::generate_sequence(const L&, const R&, OutputIterator, const Attribute&, const Context&, typename std::enable_if::value>::type*) [with L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >, const char*>, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>; R = efl::eolian::grammar::kleene_generator >; OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; typename std::enable_if::value>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:109:40: required from ‘bool efl::eolian::grammar::sequence_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >, const char*>, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>; R = efl::eolian::grammar::kleene_generator >]’ ../../src/bin/eolian_mono/eolian_mono/function_definition.hh:37:8: required from ‘bool eolian_mono::function_definition_generator::generate(OutputIterator, const efl::eolian::grammar::attributes::function_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/lib/eolian_cxx/grammar/kleene.hpp:20:14: required from ‘bool efl::eolian::grammar::kleene_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::vector; Context = efl::eolian::grammar::context_cons; Generator = eolian_mono::function_definition_generator]’ ../../src/bin/eolian_mono/eolian_mono/klass.hh:112:13: required from ‘bool eolian_mono::klass::generate(OutputIterator, const efl::eolian::grammar::attributes::klass_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/bin/eolian_mono/eolian_mono.cc:95:139: required from here /usr/include/c++/6.2.1/bits/range_access.h:78:54: error: ‘const class std::tuple, std::allocator > >’ has no member named ‘end’ end(const _Container& __cont) -> decltype(__cont.end()) ~~~~~~~^~~ ../../src/lib/eolian_cxx/grammar/string.hpp: In instantiation of ‘bool efl::eolian::grammar::string_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator > >; Context = efl::eolian::grammar::context_cons]’: ../../src/bin/eolian_mono/eolian_mono/parameter.hh:33:91: required from ‘bool eolian_mono::argument_generator::generate(OutputIterator, const efl::eolian::grammar::attributes::parameter_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/lib/eolian_cxx/grammar/attributes.hpp:180:48: required from ‘bool efl::eolian::grammar::attributes::generate(const Generator&, OutputIterator, const Attribute&, const Context&, typename std::enable_if<((! efl::eolian::grammar::type_traits::is_explicit_tuple::value) && (efl::eolian::grammar::type_traits::attributes_needed::value != 0))>::type*) [with Generator = eolian_mono::argument_generator; OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; typename std::enable_if<((! efl::eolian::grammar::type_traits::is_explicit_tuple::value) && (efl::eolian::grammar::type_traits::attributes_needed::value != 0))>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:26:36: required from ‘bool efl::eolian::grammar::generate_sequence(const L&, const R&, OutputIterator, const Attribute&, const Context&, typename std::enable_if::value>::type*) [with L = const char*; R = eolian_mono::argument_generator; OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; typename std::enable_if::value>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:109:40: required from ‘bool efl::eolian::grammar::sequence_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; L = const char*; R = eolian_mono::argument_generator]’ ../../src/lib/eolian_cxx/grammar/kleene.hpp:20:14: [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ] ../../src/lib/eolian_cxx/grammar/sequence.hpp:26:36: required from ‘bool efl::eolian::grammar::generate_sequence(const L&, const R&, OutputIterator, const Attribute&, const Context&, typename std::enable_if::value>::type*) [with L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >, const char*>, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>; R = efl::eolian::grammar::kleene_generator >; OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; typename std::enable_if::value>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:109:40: required from ‘bool efl::eolian::grammar::sequence_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >, const char*>, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>; R = efl::eolian::grammar::kleene_generator >]’ ../../src/bin/eolian_mono/eolian_mono/function_definition.hh:37:8: required from ‘bool eolian_mono::function_definition_generator::generate(OutputIterator, const efl::eolian::grammar::attributes::function_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/lib/eolian_cxx/grammar/kleene.hpp:20:14: required from ‘bool efl::eolian::grammar::kleene_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::vector; Context = efl::eolian::grammar::context_cons; Generator = eolian_mono::function_definition_generator]’ ../../src/bin/eolian_mono/eolian_mono/klass.hh:112:13: required from ‘bool eolian_mono::klass::generate(OutputIterator, const efl::eolian::grammar::attributes::klass_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/bin/eolian_mono/eolian_mono.cc:95:139: required from here /usr/include/c++/6.2.1/bits/range_access.h:97:5: note: candidate: template constexpr _Tp* std::end(_Tp (&)[_Nm]) end(_Tp (&__arr)[_Nm]) ^~~ /usr/include/c++/6.2.1/bits/range_access.h:97:5: note: template argument deduction/substitution failed: In file included from ../../src/lib/eolian_cxx/grammar/klass_def.hpp:7:0, from ../../src/bin/eolian_mono/eolian_mono/klass.hh:5, from ../../src/bin/eolian_mono/eolian_mono.cc:25: ../../src/lib/eolian_cxx/grammar/string.hpp:55:57: note: mismatched types ‘_Tp [_Nm]’ and ‘const std::tuple, std::allocator > >’ std::transform(std::begin(attribute), std::end(attribute), sink, &::toupper); ~~~~~~~~^~~~~~~~~~~ In file included from /usr/include/c++/6.2.1/string:51:0, from /usr/include/c++/6.2.1/bits/locale_classes.h:40, from /usr/include/c++/6.2.1/bits/ios_base.h:41, from /usr/include/c++/6.2.1/ios:42, from /usr/include/c++/6.2.1/ostream:38, from /usr/include/c++/6.2.1/iostream:39, from ../../src/bin/eolian_mono/eolian_mono.cc:2: /usr/include/c++/6.2.1/bits/range_access.h:106:31: note: candidate: template _Tp* std::end(std::valarray<_Tp>&) template _Tp* end(valarray<_Tp>&); ^~~ /usr/include/c++/6.2.1/bits/range_access.h:106:31: note: template argument deduction/substitution failed: In file included from ../../src/lib/eolian_cxx/grammar/klass_def.hpp:7:0, from ../../src/bin/eolian_mono/eolian_mono/klass.hh:5, from ../../src/bin/eolian_mono/eolian_mono.cc:25: ../../src/lib/eolian_cxx/grammar/string.hpp:55:57: note: types ‘std::valarray<_Tp>’ and ‘const std::tuple, std::allocator > >’ have incompatible cv-qualifiers std::transform(std::begin(attribute), std::end(attribute), sink, &::toupper); ~~~~~~~~^~~~~~~~~~~ In file included from /usr/include/c++/6.2.1/string:51:0, from /usr/include/c++/6.2.1/bits/locale_classes.h:40, from /usr/include/c++/6.2.1/bits/ios_base.h:41, from /usr/include/c++/6.2.1/ios:42, from /usr/include/c++/6.2.1/ostream:38, from /usr/include/c++/6.2.1/iostream:39, from ../../src/bin/eolian_mono/eolian_mono.cc:2: /usr/include/c++/6.2.1/bits/range_access.h:107:37: note: candidate: template const _Tp* std::end(const std::valarray<_Tp>&) template const _Tp* end(const valarray<_Tp>&); ^~~ /usr/include/c++/6.2.1/bits/range_access.h:107:37: note: template argument deduction/substitution failed: In file included from ../../src/lib/eolian_cxx/grammar/klass_def.hpp:7:0, from ../../src/bin/eolian_mono/eolian_mono/klass.hh:5, from ../../src/bin/eolian_mono/eolian_mono.cc:25: ../../src/lib/eolian_cxx/grammar/string.hpp:55:57: note: ‘const std::tuple, std::allocator > >’ is not derived from ‘const std::valarray<_Tp>’ std::transform(std::begin(attribute), std::end(attribute), sink, &::toupper); ~~~~~~~~^~~~~~~~~~~ ../../src/lib/eolian_cxx/grammar/string.hpp:59:36: error: no matching function for call to ‘begin(const std::tuple, std::allocator > >&)’ std::transform(std::begin(attribute), std::end(attribute), sink, &::tolower); ~~~~~~~~~~^~~~~~~~~~~ In file included from /usr/include/c++/6.2.1/bits/range_access.h:36:0, from /usr/include/c++/6.2.1/string:51, from /usr/include/c++/6.2.1/bits/locale_classes.h:40, from /usr/include/c++/6.2.1/bits/ios_base.h:41, from /usr/include/c++/6.2.1/ios:42, from /usr/include/c++/6.2.1/ostream:38, from /usr/include/c++/6.2.1/iostream:39, from ../../src/bin/eolian_mono/eolian_mono.cc:2: /usr/include/c++/6.2.1/initializer_list:89:5: note: candidate: template constexpr const _Tp* std::begin(std::initializer_list<_Tp>) begin(initializer_list<_Tp> __ils) noexcept ^~~~~ /usr/include/c++/6.2.1/initializer_list:89:5: note: template argument deduction/substitution failed: In file included from ../../src/lib/eolian_cxx/grammar/klass_def.hpp:7:0, from ../../src/bin/eolian_mono/eolian_mono/klass.hh:5, from ../../src/bin/eolian_mono/eolian_mono.cc:25: ../../src/lib/eolian_cxx/grammar/string.hpp:59:36: note: ‘std::tuple, std::allocator > >’ is not derived from ‘std::initializer_list<_Tp>’ std::transform(std::begin(attribute), std::end(attribute), sink, &::tolower); ~~~~~~~~~~^~~~~~~~~~~ In file included from /usr/include/c++/6.2.1/string:51:0, from /usr/include/c++/6.2.1/bits/locale_classes.h:40, from /usr/include/c++/6.2.1/bits/ios_base.h:41, from /usr/include/c++/6.2.1/ios:42, from /usr/include/c++/6.2.1/ostream:38, from /usr/include/c++/6.2.1/iostream:39, from ../../src/bin/eolian_mono/eolian_mono.cc:2: /usr/include/c++/6.2.1/bits/range_access.h:48:5: note: candidate: template decltype (__cont.begin()) std::begin(_Container&) begin(_Container& __cont) -> decltype(__cont.begin()) ^~~~~ /usr/include/c++/6.2.1/bits/range_access.h:48:5: note: template argument deduction/substitution failed: /usr/include/c++/6.2.1/bits/range_access.h: In substitution of ‘template decltype (__cont.begin()) std::begin(_Container&) [with _Container = const std::tuple, std::allocator > >]’: ../../src/lib/eolian_cxx/grammar/string.hpp:59:36: required from ‘bool efl::eolian::grammar::string_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator > >; Context = efl::eolian::grammar::context_cons]’ ../../src/bin/eolian_mono/eolian_mono/parameter.hh:33:91: required from ‘bool eolian_mono::argument_generator::generate(OutputIterator, const efl::eolian::grammar::attributes::parameter_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/lib/eolian_cxx/grammar/attributes.hpp:180:48: required from ‘bool efl::eolian::grammar::attributes::generate(const Generator&, OutputIterator, const Attribute&, const Context&, typename std::enable_if<((! efl::eolian::grammar::type_traits::is_explicit_tuple::value) && (efl::eolian::grammar::type_traits::attributes_needed::value != 0))>::type*) [with Generator = eolian_mono::argument_generator; OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; typename std::enable_if<((! efl::eolian::grammar::type_traits::is_explicit_tuple::value) && (efl::eolian::grammar::type_traits::attributes_needed::value != 0))>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:26:36: required from ‘bool efl::eolian::grammar::generate_sequence(const L&, const R&, OutputIterator, const Attribute&, const Context&, typename std::enable_if::value>::type*) [with L = const char*; R = eolian_mono::argument_generator; OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; typename std::enable_if::value>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:109:40: required from ‘bool efl::eolian::grammar::sequence_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; L = const char*; R = eolian_mono::argument_generator]’ ../../src/lib/eolian_cxx/grammar/kleene.hpp:20:14: [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ] ../../src/lib/eolian_cxx/grammar/sequence.hpp:26:36: required from ‘bool efl::eolian::grammar::generate_sequence(const L&, const R&, OutputIterator, const Attribute&, const Context&, typename std::enable_if::value>::type*) [with L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >, const char*>, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>; R = efl::eolian::grammar::kleene_generator >; OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; typename std::enable_if::value>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:109:40: required from ‘bool efl::eolian::grammar::sequence_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >, const char*>, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>; R = efl::eolian::grammar::kleene_generator >]’ ../../src/bin/eolian_mono/eolian_mono/function_definition.hh:37:8: required from ‘bool eolian_mono::function_definition_generator::generate(OutputIterator, const efl::eolian::grammar::attributes::function_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/lib/eolian_cxx/grammar/kleene.hpp:20:14: required from ‘bool efl::eolian::grammar::kleene_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::vector; Context = efl::eolian::grammar::context_cons; Generator = eolian_mono::function_definition_generator]’ ../../src/bin/eolian_mono/eolian_mono/klass.hh:112:13: required from ‘bool eolian_mono::klass::generate(OutputIterator, const efl::eolian::grammar::attributes::klass_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/bin/eolian_mono/eolian_mono.cc:95:139: required from here /usr/include/c++/6.2.1/bits/range_access.h:48:50: error: ‘const class std::tuple, std::allocator > >’ has no member named ‘begin’ begin(_Container& __cont) -> decltype(__cont.begin()) ~~~~~~~^~~~~ ../../src/lib/eolian_cxx/grammar/string.hpp: In instantiation of ‘bool efl::eolian::grammar::string_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator > >; Context = efl::eolian::grammar::context_cons]’: ../../src/bin/eolian_mono/eolian_mono/parameter.hh:33:91: required from ‘bool eolian_mono::argument_generator::generate(OutputIterator, const efl::eolian::grammar::attributes::parameter_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/lib/eolian_cxx/grammar/attributes.hpp:180:48: required from ‘bool efl::eolian::grammar::attributes::generate(const Generator&, OutputIterator, const Attribute&, const Context&, typename std::enable_if<((! efl::eolian::grammar::type_traits::is_explicit_tuple::value) && (efl::eolian::grammar::type_traits::attributes_needed::value != 0))>::type*) [with Generator = eolian_mono::argument_generator; OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; typename std::enable_if<((! efl::eolian::grammar::type_traits::is_explicit_tuple::value) && (efl::eolian::grammar::type_traits::attributes_needed::value != 0))>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:26:36: required from ‘bool efl::eolian::grammar::generate_sequence(const L&, const R&, OutputIterator, const Attribute&, const Context&, typename std::enable_if::value>::type*) [with L = const char*; R = eolian_mono::argument_generator; OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; typename std::enable_if::value>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:109:40: required from ‘bool efl::eolian::grammar::sequence_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; L = const char*; R = eolian_mono::argument_generator]’ ../../src/lib/eolian_cxx/grammar/kleene.hpp:20:14: [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ] ../../src/lib/eolian_cxx/grammar/sequence.hpp:26:36: required from ‘bool efl::eolian::grammar::generate_sequence(const L&, const R&, OutputIterator, const Attribute&, const Context&, typename std::enable_if::value>::type*) [with L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >, const char*>, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>; R = efl::eolian::grammar::kleene_generator >; OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; typename std::enable_if::value>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:109:40: required from ‘bool efl::eolian::grammar::sequence_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >, const char*>, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>; R = efl::eolian::grammar::kleene_generator >]’ ../../src/bin/eolian_mono/eolian_mono/function_definition.hh:37:8: required from ‘bool eolian_mono::function_definition_generator::generate(OutputIterator, const efl::eolian::grammar::attributes::function_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/lib/eolian_cxx/grammar/kleene.hpp:20:14: required from ‘bool efl::eolian::grammar::kleene_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::vector; Context = efl::eolian::grammar::context_cons; Generator = eolian_mono::function_definition_generator]’ ../../src/bin/eolian_mono/eolian_mono/klass.hh:112:13: required from ‘bool eolian_mono::klass::generate(OutputIterator, const efl::eolian::grammar::attributes::klass_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/bin/eolian_mono/eolian_mono.cc:95:139: required from here /usr/include/c++/6.2.1/bits/range_access.h:58:5: note: candidate: template decltype (__cont.begin()) std::begin(const _Container&) begin(const _Container& __cont) -> decltype(__cont.begin()) ^~~~~ /usr/include/c++/6.2.1/bits/range_access.h:58:5: note: template argument deduction/substitution failed: /usr/include/c++/6.2.1/bits/range_access.h: In substitution of ‘template decltype (__cont.begin()) std::begin(const _Container&) [with _Container = std::tuple, std::allocator > >]’: ../../src/lib/eolian_cxx/grammar/string.hpp:59:36: required from ‘bool efl::eolian::grammar::string_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator > >; Context = efl::eolian::grammar::context_cons]’ ../../src/bin/eolian_mono/eolian_mono/parameter.hh:33:91: required from ‘bool eolian_mono::argument_generator::generate(OutputIterator, const efl::eolian::grammar::attributes::parameter_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/lib/eolian_cxx/grammar/attributes.hpp:180:48: required from ‘bool efl::eolian::grammar::attributes::generate(const Generator&, OutputIterator, const Attribute&, const Context&, typename std::enable_if<((! efl::eolian::grammar::type_traits::is_explicit_tuple::value) && (efl::eolian::grammar::type_traits::attributes_needed::value != 0))>::type*) [with Generator = eolian_mono::argument_generator; OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; typename std::enable_if<((! efl::eolian::grammar::type_traits::is_explicit_tuple::value) && (efl::eolian::grammar::type_traits::attributes_needed::value != 0))>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:26:36: required from ‘bool efl::eolian::grammar::generate_sequence(const L&, const R&, OutputIterator, const Attribute&, const Context&, typename std::enable_if::value>::type*) [with L = const char*; R = eolian_mono::argument_generator; OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; typename std::enable_if::value>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:109:40: required from ‘bool efl::eolian::grammar::sequence_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; L = const char*; R = eolian_mono::argument_generator]’ ../../src/lib/eolian_cxx/grammar/kleene.hpp:20:14: [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ] ../../src/lib/eolian_cxx/grammar/sequence.hpp:26:36: required from ‘bool efl::eolian::grammar::generate_sequence(const L&, const R&, OutputIterator, const Attribute&, const Context&, typename std::enable_if::value>::type*) [with L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >, const char*>, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>; R = efl::eolian::grammar::kleene_generator >; OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; typename std::enable_if::value>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:109:40: required from ‘bool efl::eolian::grammar::sequence_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >, const char*>, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>; R = efl::eolian::grammar::kleene_generator >]’ ../../src/bin/eolian_mono/eolian_mono/function_definition.hh:37:8: required from ‘bool eolian_mono::function_definition_generator::generate(OutputIterator, const efl::eolian::grammar::attributes::function_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/lib/eolian_cxx/grammar/kleene.hpp:20:14: required from ‘bool efl::eolian::grammar::kleene_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::vector; Context = efl::eolian::grammar::context_cons; Generator = eolian_mono::function_definition_generator]’ ../../src/bin/eolian_mono/eolian_mono/klass.hh:112:13: required from ‘bool eolian_mono::klass::generate(OutputIterator, const efl::eolian::grammar::attributes::klass_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/bin/eolian_mono/eolian_mono.cc:95:139: required from here /usr/include/c++/6.2.1/bits/range_access.h:58:56: error: ‘const class std::tuple, std::allocator > >’ has no member named ‘begin’ begin(const _Container& __cont) -> decltype(__cont.begin()) ~~~~~~~^~~~~ ../../src/lib/eolian_cxx/grammar/string.hpp: In instantiation of ‘bool efl::eolian::grammar::string_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator > >; Context = efl::eolian::grammar::context_cons]’: ../../src/bin/eolian_mono/eolian_mono/parameter.hh:33:91: required from ‘bool eolian_mono::argument_generator::generate(OutputIterator, const efl::eolian::grammar::attributes::parameter_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/lib/eolian_cxx/grammar/attributes.hpp:180:48: required from ‘bool efl::eolian::grammar::attributes::generate(const Generator&, OutputIterator, const Attribute&, const Context&, typename std::enable_if<((! efl::eolian::grammar::type_traits::is_explicit_tuple::value) && (efl::eolian::grammar::type_traits::attributes_needed::value != 0))>::type*) [with Generator = eolian_mono::argument_generator; OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; typename std::enable_if<((! efl::eolian::grammar::type_traits::is_explicit_tuple::value) && (efl::eolian::grammar::type_traits::attributes_needed::value != 0))>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:26:36: required from ‘bool efl::eolian::grammar::generate_sequence(const L&, const R&, OutputIterator, const Attribute&, const Context&, typename std::enable_if::value>::type*) [with L = const char*; R = eolian_mono::argument_generator; OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; typename std::enable_if::value>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:109:40: required from ‘bool efl::eolian::grammar::sequence_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; L = const char*; R = eolian_mono::argument_generator]’ ../../src/lib/eolian_cxx/grammar/kleene.hpp:20:14: [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ] ../../src/lib/eolian_cxx/grammar/sequence.hpp:26:36: required from ‘bool efl::eolian::grammar::generate_sequence(const L&, const R&, OutputIterator, const Attribute&, const Context&, typename std::enable_if::value>::type*) [with L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >, const char*>, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>; R = efl::eolian::grammar::kleene_generator >; OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; typename std::enable_if::value>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:109:40: required from ‘bool efl::eolian::grammar::sequence_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >, const char*>, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>; R = efl::eolian::grammar::kleene_generator >]’ ../../src/bin/eolian_mono/eolian_mono/function_definition.hh:37:8: required from ‘bool eolian_mono::function_definition_generator::generate(OutputIterator, const efl::eolian::grammar::attributes::function_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/lib/eolian_cxx/grammar/kleene.hpp:20:14: required from ‘bool efl::eolian::grammar::kleene_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::vector; Context = efl::eolian::grammar::context_cons; Generator = eolian_mono::function_definition_generator]’ ../../src/bin/eolian_mono/eolian_mono/klass.hh:112:13: required from ‘bool eolian_mono::klass::generate(OutputIterator, const efl::eolian::grammar::attributes::klass_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/bin/eolian_mono/eolian_mono.cc:95:139: required from here /usr/include/c++/6.2.1/bits/range_access.h:87:5: note: candidate: template constexpr _Tp* std::begin(_Tp (&)[_Nm]) begin(_Tp (&__arr)[_Nm]) ^~~~~ /usr/include/c++/6.2.1/bits/range_access.h:87:5: note: template argument deduction/substitution failed: In file included from ../../src/lib/eolian_cxx/grammar/klass_def.hpp:7:0, from ../../src/bin/eolian_mono/eolian_mono/klass.hh:5, from ../../src/bin/eolian_mono/eolian_mono.cc:25: ../../src/lib/eolian_cxx/grammar/string.hpp:59:36: note: mismatched types ‘_Tp [_Nm]’ and ‘const std::tuple, std::allocator > >’ std::transform(std::begin(attribute), std::end(attribute), sink, &::tolower); ~~~~~~~~~~^~~~~~~~~~~ In file included from /usr/include/c++/6.2.1/string:51:0, from /usr/include/c++/6.2.1/bits/locale_classes.h:40, from /usr/include/c++/6.2.1/bits/ios_base.h:41, from /usr/include/c++/6.2.1/ios:42, from /usr/include/c++/6.2.1/ostream:38, from /usr/include/c++/6.2.1/iostream:39, from ../../src/bin/eolian_mono/eolian_mono.cc:2: /usr/include/c++/6.2.1/bits/range_access.h:104:31: note: candidate: template _Tp* std::begin(std::valarray<_Tp>&) template _Tp* begin(valarray<_Tp>&); ^~~~~ /usr/include/c++/6.2.1/bits/range_access.h:104:31: note: template argument deduction/substitution failed: In file included from ../../src/lib/eolian_cxx/grammar/klass_def.hpp:7:0, from ../../src/bin/eolian_mono/eolian_mono/klass.hh:5, from ../../src/bin/eolian_mono/eolian_mono.cc:25: ../../src/lib/eolian_cxx/grammar/string.hpp:59:36: note: types ‘std::valarray<_Tp>’ and ‘const std::tuple, std::allocator > >’ have incompatible cv-qualifiers std::transform(std::begin(attribute), std::end(attribute), sink, &::tolower); ~~~~~~~~~~^~~~~~~~~~~ In file included from /usr/include/c++/6.2.1/string:51:0, from /usr/include/c++/6.2.1/bits/locale_classes.h:40, from /usr/include/c++/6.2.1/bits/ios_base.h:41, from /usr/include/c++/6.2.1/ios:42, from /usr/include/c++/6.2.1/ostream:38, from /usr/include/c++/6.2.1/iostream:39, from ../../src/bin/eolian_mono/eolian_mono.cc:2: /usr/include/c++/6.2.1/bits/range_access.h:105:37: note: candidate: template const _Tp* std::begin(const std::valarray<_Tp>&) template const _Tp* begin(const valarray<_Tp>&); ^~~~~ /usr/include/c++/6.2.1/bits/range_access.h:105:37: note: template argument deduction/substitution failed: In file included from ../../src/lib/eolian_cxx/grammar/klass_def.hpp:7:0, from ../../src/bin/eolian_mono/eolian_mono/klass.hh:5, from ../../src/bin/eolian_mono/eolian_mono.cc:25: ../../src/lib/eolian_cxx/grammar/string.hpp:59:36: note: ‘const std::tuple, std::allocator > >’ is not derived from ‘const std::valarray<_Tp>’ std::transform(std::begin(attribute), std::end(attribute), sink, &::tolower); ~~~~~~~~~~^~~~~~~~~~~ ../../src/lib/eolian_cxx/grammar/string.hpp:59:57: error: no matching function for call to ‘end(const std::tuple, std::allocator > >&)’ std::transform(std::begin(attribute), std::end(attribute), sink, &::tolower); ~~~~~~~~^~~~~~~~~~~ In file included from /usr/include/c++/6.2.1/bits/range_access.h:36:0, from /usr/include/c++/6.2.1/string:51, from /usr/include/c++/6.2.1/bits/locale_classes.h:40, from /usr/include/c++/6.2.1/bits/ios_base.h:41, from /usr/include/c++/6.2.1/ios:42, from /usr/include/c++/6.2.1/ostream:38, from /usr/include/c++/6.2.1/iostream:39, from ../../src/bin/eolian_mono/eolian_mono.cc:2: /usr/include/c++/6.2.1/initializer_list:99:5: note: candidate: template constexpr const _Tp* std::end(std::initializer_list<_Tp>) end(initializer_list<_Tp> __ils) noexcept ^~~ /usr/include/c++/6.2.1/initializer_list:99:5: note: template argument deduction/substitution failed: In file included from ../../src/lib/eolian_cxx/grammar/klass_def.hpp:7:0, from ../../src/bin/eolian_mono/eolian_mono/klass.hh:5, from ../../src/bin/eolian_mono/eolian_mono.cc:25: ../../src/lib/eolian_cxx/grammar/string.hpp:59:57: note: ‘std::tuple, std::allocator > >’ is not derived from ‘std::initializer_list<_Tp>’ std::transform(std::begin(attribute), std::end(attribute), sink, &::tolower); ~~~~~~~~^~~~~~~~~~~ In file included from /usr/include/c++/6.2.1/string:51:0, from /usr/include/c++/6.2.1/bits/locale_classes.h:40, from /usr/include/c++/6.2.1/bits/ios_base.h:41, from /usr/include/c++/6.2.1/ios:42, from /usr/include/c++/6.2.1/ostream:38, from /usr/include/c++/6.2.1/iostream:39, from ../../src/bin/eolian_mono/eolian_mono.cc:2: /usr/include/c++/6.2.1/bits/range_access.h:68:5: note: candidate: template decltype (__cont.end()) std::end(_Container&) end(_Container& __cont) -> decltype(__cont.end()) ^~~ /usr/include/c++/6.2.1/bits/range_access.h:68:5: note: template argument deduction/substitution failed: /usr/include/c++/6.2.1/bits/range_access.h: In substitution of ‘template decltype (__cont.end()) std::end(_Container&) [with _Container = const std::tuple, std::allocator > >]’: ../../src/lib/eolian_cxx/grammar/string.hpp:59:57: required from ‘bool efl::eolian::grammar::string_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator > >; Context = efl::eolian::grammar::context_cons]’ ../../src/bin/eolian_mono/eolian_mono/parameter.hh:33:91: required from ‘bool eolian_mono::argument_generator::generate(OutputIterator, const efl::eolian::grammar::attributes::parameter_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/lib/eolian_cxx/grammar/attributes.hpp:180:48: required from ‘bool efl::eolian::grammar::attributes::generate(const Generator&, OutputIterator, const Attribute&, const Context&, typename std::enable_if<((! efl::eolian::grammar::type_traits::is_explicit_tuple::value) && (efl::eolian::grammar::type_traits::attributes_needed::value != 0))>::type*) [with Generator = eolian_mono::argument_generator; OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; typename std::enable_if<((! efl::eolian::grammar::type_traits::is_explicit_tuple::value) && (efl::eolian::grammar::type_traits::attributes_needed::value != 0))>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:26:36: required from ‘bool efl::eolian::grammar::generate_sequence(const L&, const R&, OutputIterator, const Attribute&, const Context&, typename std::enable_if::value>::type*) [with L = const char*; R = eolian_mono::argument_generator; OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; typename std::enable_if::value>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:109:40: required from ‘bool efl::eolian::grammar::sequence_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; L = const char*; R = eolian_mono::argument_generator]’ ../../src/lib/eolian_cxx/grammar/kleene.hpp:20:14: [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ] ../../src/lib/eolian_cxx/grammar/sequence.hpp:26:36: required from ‘bool efl::eolian::grammar::generate_sequence(const L&, const R&, OutputIterator, const Attribute&, const Context&, typename std::enable_if::value>::type*) [with L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >, const char*>, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>; R = efl::eolian::grammar::kleene_generator >; OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; typename std::enable_if::value>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:109:40: required from ‘bool efl::eolian::grammar::sequence_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >, const char*>, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>; R = efl::eolian::grammar::kleene_generator >]’ ../../src/bin/eolian_mono/eolian_mono/function_definition.hh:37:8: required from ‘bool eolian_mono::function_definition_generator::generate(OutputIterator, const efl::eolian::grammar::attributes::function_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/lib/eolian_cxx/grammar/kleene.hpp:20:14: required from ‘bool efl::eolian::grammar::kleene_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::vector; Context = efl::eolian::grammar::context_cons; Generator = eolian_mono::function_definition_generator]’ ../../src/bin/eolian_mono/eolian_mono/klass.hh:112:13: required from ‘bool eolian_mono::klass::generate(OutputIterator, const efl::eolian::grammar::attributes::klass_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/bin/eolian_mono/eolian_mono.cc:95:139: required from here /usr/include/c++/6.2.1/bits/range_access.h:68:48: error: ‘const class std::tuple, std::allocator > >’ has no member named ‘end’ end(_Container& __cont) -> decltype(__cont.end()) ~~~~~~~^~~ ../../src/lib/eolian_cxx/grammar/string.hpp: In instantiation of ‘bool efl::eolian::grammar::string_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator > >; Context = efl::eolian::grammar::context_cons]’: ../../src/bin/eolian_mono/eolian_mono/parameter.hh:33:91: required from ‘bool eolian_mono::argument_generator::generate(OutputIterator, const efl::eolian::grammar::attributes::parameter_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/lib/eolian_cxx/grammar/attributes.hpp:180:48: required from ‘bool efl::eolian::grammar::attributes::generate(const Generator&, OutputIterator, const Attribute&, const Context&, typename std::enable_if<((! efl::eolian::grammar::type_traits::is_explicit_tuple::value) && (efl::eolian::grammar::type_traits::attributes_needed::value != 0))>::type*) [with Generator = eolian_mono::argument_generator; OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; typename std::enable_if<((! efl::eolian::grammar::type_traits::is_explicit_tuple::value) && (efl::eolian::grammar::type_traits::attributes_needed::value != 0))>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:26:36: required from ‘bool efl::eolian::grammar::generate_sequence(const L&, const R&, OutputIterator, const Attribute&, const Context&, typename std::enable_if::value>::type*) [with L = const char*; R = eolian_mono::argument_generator; OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; typename std::enable_if::value>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:109:40: required from ‘bool efl::eolian::grammar::sequence_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; L = const char*; R = eolian_mono::argument_generator]’ ../../src/lib/eolian_cxx/grammar/kleene.hpp:20:14: [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ] ../../src/lib/eolian_cxx/grammar/sequence.hpp:26:36: required from ‘bool efl::eolian::grammar::generate_sequence(const L&, const R&, OutputIterator, const Attribute&, const Context&, typename std::enable_if::value>::type*) [with L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >, const char*>, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>; R = efl::eolian::grammar::kleene_generator >; OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; typename std::enable_if::value>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:109:40: required from ‘bool efl::eolian::grammar::sequence_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >, const char*>, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>; R = efl::eolian::grammar::kleene_generator >]’ ../../src/bin/eolian_mono/eolian_mono/function_definition.hh:37:8: required from ‘bool eolian_mono::function_definition_generator::generate(OutputIterator, const efl::eolian::grammar::attributes::function_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/lib/eolian_cxx/grammar/kleene.hpp:20:14: required from ‘bool efl::eolian::grammar::kleene_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::vector; Context = efl::eolian::grammar::context_cons; Generator = eolian_mono::function_definition_generator]’ ../../src/bin/eolian_mono/eolian_mono/klass.hh:112:13: required from ‘bool eolian_mono::klass::generate(OutputIterator, const efl::eolian::grammar::attributes::klass_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/bin/eolian_mono/eolian_mono.cc:95:139: required from here /usr/include/c++/6.2.1/bits/range_access.h:78:5: note: candidate: template decltype (__cont.end()) std::end(const _Container&) end(const _Container& __cont) -> decltype(__cont.end()) ^~~ /usr/include/c++/6.2.1/bits/range_access.h:78:5: note: template argument deduction/substitution failed: /usr/include/c++/6.2.1/bits/range_access.h: In substitution of ‘template decltype (__cont.end()) std::end(const _Container&) [with _Container = std::tuple, std::allocator > >]’: ../../src/lib/eolian_cxx/grammar/string.hpp:59:57: required from ‘bool efl::eolian::grammar::string_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator > >; Context = efl::eolian::grammar::context_cons]’ ../../src/bin/eolian_mono/eolian_mono/parameter.hh:33:91: required from ‘bool eolian_mono::argument_generator::generate(OutputIterator, const efl::eolian::grammar::attributes::parameter_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/lib/eolian_cxx/grammar/attributes.hpp:180:48: required from ‘bool efl::eolian::grammar::attributes::generate(const Generator&, OutputIterator, const Attribute&, const Context&, typename std::enable_if<((! efl::eolian::grammar::type_traits::is_explicit_tuple::value) && (efl::eolian::grammar::type_traits::attributes_needed::value != 0))>::type*) [with Generator = eolian_mono::argument_generator; OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; typename std::enable_if<((! efl::eolian::grammar::type_traits::is_explicit_tuple::value) && (efl::eolian::grammar::type_traits::attributes_needed::value != 0))>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:26:36: required from ‘bool efl::eolian::grammar::generate_sequence(const L&, const R&, OutputIterator, const Attribute&, const Context&, typename std::enable_if::value>::type*) [with L = const char*; R = eolian_mono::argument_generator; OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; typename std::enable_if::value>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:109:40: required from ‘bool efl::eolian::grammar::sequence_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; L = const char*; R = eolian_mono::argument_generator]’ ../../src/lib/eolian_cxx/grammar/kleene.hpp:20:14: [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ] ../../src/lib/eolian_cxx/grammar/sequence.hpp:26:36: required from ‘bool efl::eolian::grammar::generate_sequence(const L&, const R&, OutputIterator, const Attribute&, const Context&, typename std::enable_if::value>::type*) [with L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >, const char*>, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>; R = efl::eolian::grammar::kleene_generator >; OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; typename std::enable_if::value>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:109:40: required from ‘bool efl::eolian::grammar::sequence_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >, const char*>, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>; R = efl::eolian::grammar::kleene_generator >]’ ../../src/bin/eolian_mono/eolian_mono/function_definition.hh:37:8: required from ‘bool eolian_mono::function_definition_generator::generate(OutputIterator, const efl::eolian::grammar::attributes::function_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/lib/eolian_cxx/grammar/kleene.hpp:20:14: required from ‘bool efl::eolian::grammar::kleene_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::vector; Context = efl::eolian::grammar::context_cons; Generator = eolian_mono::function_definition_generator]’ ../../src/bin/eolian_mono/eolian_mono/klass.hh:112:13: required from ‘bool eolian_mono::klass::generate(OutputIterator, const efl::eolian::grammar::attributes::klass_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/bin/eolian_mono/eolian_mono.cc:95:139: required from here /usr/include/c++/6.2.1/bits/range_access.h:78:54: error: ‘const class std::tuple, std::allocator > >’ has no member named ‘end’ end(const _Container& __cont) -> decltype(__cont.end()) ~~~~~~~^~~ ../../src/lib/eolian_cxx/grammar/string.hpp: In instantiation of ‘bool efl::eolian::grammar::string_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator > >; Context = efl::eolian::grammar::context_cons]’: ../../src/bin/eolian_mono/eolian_mono/parameter.hh:33:91: required from ‘bool eolian_mono::argument_generator::generate(OutputIterator, const efl::eolian::grammar::attributes::parameter_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/lib/eolian_cxx/grammar/attributes.hpp:180:48: required from ‘bool efl::eolian::grammar::attributes::generate(const Generator&, OutputIterator, const Attribute&, const Context&, typename std::enable_if<((! efl::eolian::grammar::type_traits::is_explicit_tuple::value) && (efl::eolian::grammar::type_traits::attributes_needed::value != 0))>::type*) [with Generator = eolian_mono::argument_generator; OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; typename std::enable_if<((! efl::eolian::grammar::type_traits::is_explicit_tuple::value) && (efl::eolian::grammar::type_traits::attributes_needed::value != 0))>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:26:36: required from ‘bool efl::eolian::grammar::generate_sequence(const L&, const R&, OutputIterator, const Attribute&, const Context&, typename std::enable_if::value>::type*) [with L = const char*; R = eolian_mono::argument_generator; OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; typename std::enable_if::value>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:109:40: required from ‘bool efl::eolian::grammar::sequence_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; L = const char*; R = eolian_mono::argument_generator]’ ../../src/lib/eolian_cxx/grammar/kleene.hpp:20:14: [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ] ../../src/lib/eolian_cxx/grammar/sequence.hpp:26:36: required from ‘bool efl::eolian::grammar::generate_sequence(const L&, const R&, OutputIterator, const Attribute&, const Context&, typename std::enable_if::value>::type*) [with L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >, const char*>, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>; R = efl::eolian::grammar::kleene_generator >; OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; typename std::enable_if::value>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:109:40: required from ‘bool efl::eolian::grammar::sequence_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >, const char*>, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>; R = efl::eolian::grammar::kleene_generator >]’ ../../src/bin/eolian_mono/eolian_mono/function_definition.hh:37:8: required from ‘bool eolian_mono::function_definition_generator::generate(OutputIterator, const efl::eolian::grammar::attributes::function_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/lib/eolian_cxx/grammar/kleene.hpp:20:14: required from ‘bool efl::eolian::grammar::kleene_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::vector; Context = efl::eolian::grammar::context_cons; Generator = eolian_mono::function_definition_generator]’ ../../src/bin/eolian_mono/eolian_mono/klass.hh:112:13: required from ‘bool eolian_mono::klass::generate(OutputIterator, const efl::eolian::grammar::attributes::klass_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/bin/eolian_mono/eolian_mono.cc:95:139: required from here /usr/include/c++/6.2.1/bits/range_access.h:97:5: note: candidate: template constexpr _Tp* std::end(_Tp (&)[_Nm]) end(_Tp (&__arr)[_Nm]) ^~~ /usr/include/c++/6.2.1/bits/range_access.h:97:5: note: template argument deduction/substitution failed: In file included from ../../src/lib/eolian_cxx/grammar/klass_def.hpp:7:0, from ../../src/bin/eolian_mono/eolian_mono/klass.hh:5, from ../../src/bin/eolian_mono/eolian_mono.cc:25: ../../src/lib/eolian_cxx/grammar/string.hpp:59:57: note: mismatched types ‘_Tp [_Nm]’ and ‘const std::tuple, std::allocator > >’ std::transform(std::begin(attribute), std::end(attribute), sink, &::tolower); ~~~~~~~~^~~~~~~~~~~ In file included from /usr/include/c++/6.2.1/string:51:0, from /usr/include/c++/6.2.1/bits/locale_classes.h:40, from /usr/include/c++/6.2.1/bits/ios_base.h:41, from /usr/include/c++/6.2.1/ios:42, from /usr/include/c++/6.2.1/ostream:38, from /usr/include/c++/6.2.1/iostream:39, from ../../src/bin/eolian_mono/eolian_mono.cc:2: /usr/include/c++/6.2.1/bits/range_access.h:106:31: note: candidate: template _Tp* std::end(std::valarray<_Tp>&) template _Tp* end(valarray<_Tp>&); ^~~ /usr/include/c++/6.2.1/bits/range_access.h:106:31: note: template argument deduction/substitution failed: In file included from ../../src/lib/eolian_cxx/grammar/klass_def.hpp:7:0, from ../../src/bin/eolian_mono/eolian_mono/klass.hh:5, from ../../src/bin/eolian_mono/eolian_mono.cc:25: ../../src/lib/eolian_cxx/grammar/string.hpp:59:57: note: types ‘std::valarray<_Tp>’ and ‘const std::tuple, std::allocator > >’ have incompatible cv-qualifiers std::transform(std::begin(attribute), std::end(attribute), sink, &::tolower); ~~~~~~~~^~~~~~~~~~~ In file included from /usr/include/c++/6.2.1/string:51:0, from /usr/include/c++/6.2.1/bits/locale_classes.h:40, from /usr/include/c++/6.2.1/bits/ios_base.h:41, from /usr/include/c++/6.2.1/ios:42, from /usr/include/c++/6.2.1/ostream:38, from /usr/include/c++/6.2.1/iostream:39, from ../../src/bin/eolian_mono/eolian_mono.cc:2: /usr/include/c++/6.2.1/bits/range_access.h:107:37: note: candidate: template const _Tp* std::end(const std::valarray<_Tp>&) template const _Tp* end(const valarray<_Tp>&); ^~~ /usr/include/c++/6.2.1/bits/range_access.h:107:37: note: template argument deduction/substitution failed: In file included from ../../src/lib/eolian_cxx/grammar/klass_def.hpp:7:0, from ../../src/bin/eolian_mono/eolian_mono/klass.hh:5, from ../../src/bin/eolian_mono/eolian_mono.cc:25: ../../src/lib/eolian_cxx/grammar/string.hpp:59:57: note: ‘const std::tuple, std::allocator > >’ is not derived from ‘const std::valarray<_Tp>’ std::transform(std::begin(attribute), std::end(attribute), sink, &::tolower); ~~~~~~~~^~~~~~~~~~~ ../../src/lib/eolian_cxx/grammar/string.hpp:63:31: error: no matching function for call to ‘begin(const std::tuple, std::allocator > >&)’ std::copy(std::begin(attribute), std::end(attribute), sink); ~~~~~~~~~~^~~~~~~~~~~ In file included from /usr/include/c++/6.2.1/bits/range_access.h:36:0, from /usr/include/c++/6.2.1/string:51, from /usr/include/c++/6.2.1/bits/locale_classes.h:40, from /usr/include/c++/6.2.1/bits/ios_base.h:41, from /usr/include/c++/6.2.1/ios:42, from /usr/include/c++/6.2.1/ostream:38, from /usr/include/c++/6.2.1/iostream:39, from ../../src/bin/eolian_mono/eolian_mono.cc:2: /usr/include/c++/6.2.1/initializer_list:89:5: note: candidate: template constexpr const _Tp* std::begin(std::initializer_list<_Tp>) begin(initializer_list<_Tp> __ils) noexcept ^~~~~ /usr/include/c++/6.2.1/initializer_list:89:5: note: template argument deduction/substitution failed: In file included from ../../src/lib/eolian_cxx/grammar/klass_def.hpp:7:0, from ../../src/bin/eolian_mono/eolian_mono/klass.hh:5, from ../../src/bin/eolian_mono/eolian_mono.cc:25: ../../src/lib/eolian_cxx/grammar/string.hpp:63:31: note: ‘std::tuple, std::allocator > >’ is not derived from ‘std::initializer_list<_Tp>’ std::copy(std::begin(attribute), std::end(attribute), sink); ~~~~~~~~~~^~~~~~~~~~~ In file included from /usr/include/c++/6.2.1/string:51:0, from /usr/include/c++/6.2.1/bits/locale_classes.h:40, from /usr/include/c++/6.2.1/bits/ios_base.h:41, from /usr/include/c++/6.2.1/ios:42, from /usr/include/c++/6.2.1/ostream:38, from /usr/include/c++/6.2.1/iostream:39, from ../../src/bin/eolian_mono/eolian_mono.cc:2: /usr/include/c++/6.2.1/bits/range_access.h:48:5: note: candidate: template decltype (__cont.begin()) std::begin(_Container&) begin(_Container& __cont) -> decltype(__cont.begin()) ^~~~~ /usr/include/c++/6.2.1/bits/range_access.h:48:5: note: template argument deduction/substitution failed: /usr/include/c++/6.2.1/bits/range_access.h: In substitution of ‘template decltype (__cont.begin()) std::begin(_Container&) [with _Container = const std::tuple, std::allocator > >]’: ../../src/lib/eolian_cxx/grammar/string.hpp:63:31: required from ‘bool efl::eolian::grammar::string_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator > >; Context = efl::eolian::grammar::context_cons]’ ../../src/bin/eolian_mono/eolian_mono/parameter.hh:33:91: required from ‘bool eolian_mono::argument_generator::generate(OutputIterator, const efl::eolian::grammar::attributes::parameter_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/lib/eolian_cxx/grammar/attributes.hpp:180:48: required from ‘bool efl::eolian::grammar::attributes::generate(const Generator&, OutputIterator, const Attribute&, const Context&, typename std::enable_if<((! efl::eolian::grammar::type_traits::is_explicit_tuple::value) && (efl::eolian::grammar::type_traits::attributes_needed::value != 0))>::type*) [with Generator = eolian_mono::argument_generator; OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; typename std::enable_if<((! efl::eolian::grammar::type_traits::is_explicit_tuple::value) && (efl::eolian::grammar::type_traits::attributes_needed::value != 0))>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:26:36: required from ‘bool efl::eolian::grammar::generate_sequence(const L&, const R&, OutputIterator, const Attribute&, const Context&, typename std::enable_if::value>::type*) [with L = const char*; R = eolian_mono::argument_generator; OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; typename std::enable_if::value>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:109:40: required from ‘bool efl::eolian::grammar::sequence_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; L = const char*; R = eolian_mono::argument_generator]’ ../../src/lib/eolian_cxx/grammar/kleene.hpp:20:14: [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ] ../../src/lib/eolian_cxx/grammar/sequence.hpp:26:36: required from ‘bool efl::eolian::grammar::generate_sequence(const L&, const R&, OutputIterator, const Attribute&, const Context&, typename std::enable_if::value>::type*) [with L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >, const char*>, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>; R = efl::eolian::grammar::kleene_generator >; OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; typename std::enable_if::value>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:109:40: required from ‘bool efl::eolian::grammar::sequence_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >, const char*>, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>; R = efl::eolian::grammar::kleene_generator >]’ ../../src/bin/eolian_mono/eolian_mono/function_definition.hh:37:8: required from ‘bool eolian_mono::function_definition_generator::generate(OutputIterator, const efl::eolian::grammar::attributes::function_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/lib/eolian_cxx/grammar/kleene.hpp:20:14: required from ‘bool efl::eolian::grammar::kleene_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::vector; Context = efl::eolian::grammar::context_cons; Generator = eolian_mono::function_definition_generator]’ ../../src/bin/eolian_mono/eolian_mono/klass.hh:112:13: required from ‘bool eolian_mono::klass::generate(OutputIterator, const efl::eolian::grammar::attributes::klass_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/bin/eolian_mono/eolian_mono.cc:95:139: required from here /usr/include/c++/6.2.1/bits/range_access.h:48:50: error: ‘const class std::tuple, std::allocator > >’ has no member named ‘begin’ begin(_Container& __cont) -> decltype(__cont.begin()) ~~~~~~~^~~~~ ../../src/lib/eolian_cxx/grammar/string.hpp: In instantiation of ‘bool efl::eolian::grammar::string_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator > >; Context = efl::eolian::grammar::context_cons]’: ../../src/bin/eolian_mono/eolian_mono/parameter.hh:33:91: required from ‘bool eolian_mono::argument_generator::generate(OutputIterator, const efl::eolian::grammar::attributes::parameter_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/lib/eolian_cxx/grammar/attributes.hpp:180:48: required from ‘bool efl::eolian::grammar::attributes::generate(const Generator&, OutputIterator, const Attribute&, const Context&, typename std::enable_if<((! efl::eolian::grammar::type_traits::is_explicit_tuple::value) && (efl::eolian::grammar::type_traits::attributes_needed::value != 0))>::type*) [with Generator = eolian_mono::argument_generator; OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; typename std::enable_if<((! efl::eolian::grammar::type_traits::is_explicit_tuple::value) && (efl::eolian::grammar::type_traits::attributes_needed::value != 0))>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:26:36: required from ‘bool efl::eolian::grammar::generate_sequence(const L&, const R&, OutputIterator, const Attribute&, const Context&, typename std::enable_if::value>::type*) [with L = const char*; R = eolian_mono::argument_generator; OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; typename std::enable_if::value>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:109:40: required from ‘bool efl::eolian::grammar::sequence_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; L = const char*; R = eolian_mono::argument_generator]’ ../../src/lib/eolian_cxx/grammar/kleene.hpp:20:14: [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ] ../../src/lib/eolian_cxx/grammar/sequence.hpp:26:36: required from ‘bool efl::eolian::grammar::generate_sequence(const L&, const R&, OutputIterator, const Attribute&, const Context&, typename std::enable_if::value>::type*) [with L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >, const char*>, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>; R = efl::eolian::grammar::kleene_generator >; OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; typename std::enable_if::value>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:109:40: required from ‘bool efl::eolian::grammar::sequence_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >, const char*>, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>; R = efl::eolian::grammar::kleene_generator >]’ ../../src/bin/eolian_mono/eolian_mono/function_definition.hh:37:8: required from ‘bool eolian_mono::function_definition_generator::generate(OutputIterator, const efl::eolian::grammar::attributes::function_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/lib/eolian_cxx/grammar/kleene.hpp:20:14: required from ‘bool efl::eolian::grammar::kleene_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::vector; Context = efl::eolian::grammar::context_cons; Generator = eolian_mono::function_definition_generator]’ ../../src/bin/eolian_mono/eolian_mono/klass.hh:112:13: required from ‘bool eolian_mono::klass::generate(OutputIterator, const efl::eolian::grammar::attributes::klass_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/bin/eolian_mono/eolian_mono.cc:95:139: required from here /usr/include/c++/6.2.1/bits/range_access.h:58:5: note: candidate: template decltype (__cont.begin()) std::begin(const _Container&) begin(const _Container& __cont) -> decltype(__cont.begin()) ^~~~~ /usr/include/c++/6.2.1/bits/range_access.h:58:5: note: template argument deduction/substitution failed: /usr/include/c++/6.2.1/bits/range_access.h: In substitution of ‘template decltype (__cont.begin()) std::begin(const _Container&) [with _Container = std::tuple, std::allocator > >]’: ../../src/lib/eolian_cxx/grammar/string.hpp:63:31: required from ‘bool efl::eolian::grammar::string_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator > >; Context = efl::eolian::grammar::context_cons]’ ../../src/bin/eolian_mono/eolian_mono/parameter.hh:33:91: required from ‘bool eolian_mono::argument_generator::generate(OutputIterator, const efl::eolian::grammar::attributes::parameter_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/lib/eolian_cxx/grammar/attributes.hpp:180:48: required from ‘bool efl::eolian::grammar::attributes::generate(const Generator&, OutputIterator, const Attribute&, const Context&, typename std::enable_if<((! efl::eolian::grammar::type_traits::is_explicit_tuple::value) && (efl::eolian::grammar::type_traits::attributes_needed::value != 0))>::type*) [with Generator = eolian_mono::argument_generator; OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; typename std::enable_if<((! efl::eolian::grammar::type_traits::is_explicit_tuple::value) && (efl::eolian::grammar::type_traits::attributes_needed::value != 0))>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:26:36: required from ‘bool efl::eolian::grammar::generate_sequence(const L&, const R&, OutputIterator, const Attribute&, const Context&, typename std::enable_if::value>::type*) [with L = const char*; R = eolian_mono::argument_generator; OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; typename std::enable_if::value>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:109:40: required from ‘bool efl::eolian::grammar::sequence_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; L = const char*; R = eolian_mono::argument_generator]’ ../../src/lib/eolian_cxx/grammar/kleene.hpp:20:14: [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ] ../../src/lib/eolian_cxx/grammar/sequence.hpp:26:36: required from ‘bool efl::eolian::grammar::generate_sequence(const L&, const R&, OutputIterator, const Attribute&, const Context&, typename std::enable_if::value>::type*) [with L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >, const char*>, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>; R = efl::eolian::grammar::kleene_generator >; OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; typename std::enable_if::value>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:109:40: required from ‘bool efl::eolian::grammar::sequence_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >, const char*>, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>; R = efl::eolian::grammar::kleene_generator >]’ ../../src/bin/eolian_mono/eolian_mono/function_definition.hh:37:8: required from ‘bool eolian_mono::function_definition_generator::generate(OutputIterator, const efl::eolian::grammar::attributes::function_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/lib/eolian_cxx/grammar/kleene.hpp:20:14: required from ‘bool efl::eolian::grammar::kleene_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::vector; Context = efl::eolian::grammar::context_cons; Generator = eolian_mono::function_definition_generator]’ ../../src/bin/eolian_mono/eolian_mono/klass.hh:112:13: required from ‘bool eolian_mono::klass::generate(OutputIterator, const efl::eolian::grammar::attributes::klass_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/bin/eolian_mono/eolian_mono.cc:95:139: required from here /usr/include/c++/6.2.1/bits/range_access.h:58:56: error: ‘const class std::tuple, std::allocator > >’ has no member named ‘begin’ begin(const _Container& __cont) -> decltype(__cont.begin()) ~~~~~~~^~~~~ ../../src/lib/eolian_cxx/grammar/string.hpp: In instantiation of ‘bool efl::eolian::grammar::string_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator > >; Context = efl::eolian::grammar::context_cons]’: ../../src/bin/eolian_mono/eolian_mono/parameter.hh:33:91: required from ‘bool eolian_mono::argument_generator::generate(OutputIterator, const efl::eolian::grammar::attributes::parameter_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/lib/eolian_cxx/grammar/attributes.hpp:180:48: required from ‘bool efl::eolian::grammar::attributes::generate(const Generator&, OutputIterator, const Attribute&, const Context&, typename std::enable_if<((! efl::eolian::grammar::type_traits::is_explicit_tuple::value) && (efl::eolian::grammar::type_traits::attributes_needed::value != 0))>::type*) [with Generator = eolian_mono::argument_generator; OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; typename std::enable_if<((! efl::eolian::grammar::type_traits::is_explicit_tuple::value) && (efl::eolian::grammar::type_traits::attributes_needed::value != 0))>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:26:36: required from ‘bool efl::eolian::grammar::generate_sequence(const L&, const R&, OutputIterator, const Attribute&, const Context&, typename std::enable_if::value>::type*) [with L = const char*; R = eolian_mono::argument_generator; OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; typename std::enable_if::value>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:109:40: required from ‘bool efl::eolian::grammar::sequence_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; L = const char*; R = eolian_mono::argument_generator]’ ../../src/lib/eolian_cxx/grammar/kleene.hpp:20:14: [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ] ../../src/lib/eolian_cxx/grammar/sequence.hpp:26:36: required from ‘bool efl::eolian::grammar::generate_sequence(const L&, const R&, OutputIterator, const Attribute&, const Context&, typename std::enable_if::value>::type*) [with L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >, const char*>, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>; R = efl::eolian::grammar::kleene_generator >; OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; typename std::enable_if::value>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:109:40: required from ‘bool efl::eolian::grammar::sequence_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >, const char*>, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>; R = efl::eolian::grammar::kleene_generator >]’ ../../src/bin/eolian_mono/eolian_mono/function_definition.hh:37:8: required from ‘bool eolian_mono::function_definition_generator::generate(OutputIterator, const efl::eolian::grammar::attributes::function_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/lib/eolian_cxx/grammar/kleene.hpp:20:14: required from ‘bool efl::eolian::grammar::kleene_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::vector; Context = efl::eolian::grammar::context_cons; Generator = eolian_mono::function_definition_generator]’ ../../src/bin/eolian_mono/eolian_mono/klass.hh:112:13: required from ‘bool eolian_mono::klass::generate(OutputIterator, const efl::eolian::grammar::attributes::klass_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/bin/eolian_mono/eolian_mono.cc:95:139: required from here /usr/include/c++/6.2.1/bits/range_access.h:87:5: note: candidate: template constexpr _Tp* std::begin(_Tp (&)[_Nm]) begin(_Tp (&__arr)[_Nm]) ^~~~~ /usr/include/c++/6.2.1/bits/range_access.h:87:5: note: template argument deduction/substitution failed: In file included from ../../src/lib/eolian_cxx/grammar/klass_def.hpp:7:0, from ../../src/bin/eolian_mono/eolian_mono/klass.hh:5, from ../../src/bin/eolian_mono/eolian_mono.cc:25: ../../src/lib/eolian_cxx/grammar/string.hpp:63:31: note: mismatched types ‘_Tp [_Nm]’ and ‘const std::tuple, std::allocator > >’ std::copy(std::begin(attribute), std::end(attribute), sink); ~~~~~~~~~~^~~~~~~~~~~ In file included from /usr/include/c++/6.2.1/string:51:0, from /usr/include/c++/6.2.1/bits/locale_classes.h:40, from /usr/include/c++/6.2.1/bits/ios_base.h:41, from /usr/include/c++/6.2.1/ios:42, from /usr/include/c++/6.2.1/ostream:38, from /usr/include/c++/6.2.1/iostream:39, from ../../src/bin/eolian_mono/eolian_mono.cc:2: /usr/include/c++/6.2.1/bits/range_access.h:104:31: note: candidate: template _Tp* std::begin(std::valarray<_Tp>&) template _Tp* begin(valarray<_Tp>&); ^~~~~ /usr/include/c++/6.2.1/bits/range_access.h:104:31: note: template argument deduction/substitution failed: In file included from ../../src/lib/eolian_cxx/grammar/klass_def.hpp:7:0, from ../../src/bin/eolian_mono/eolian_mono/klass.hh:5, from ../../src/bin/eolian_mono/eolian_mono.cc:25: ../../src/lib/eolian_cxx/grammar/string.hpp:63:31: note: types ‘std::valarray<_Tp>’ and ‘const std::tuple, std::allocator > >’ have incompatible cv-qualifiers std::copy(std::begin(attribute), std::end(attribute), sink); ~~~~~~~~~~^~~~~~~~~~~ In file included from /usr/include/c++/6.2.1/string:51:0, from /usr/include/c++/6.2.1/bits/locale_classes.h:40, from /usr/include/c++/6.2.1/bits/ios_base.h:41, from /usr/include/c++/6.2.1/ios:42, from /usr/include/c++/6.2.1/ostream:38, from /usr/include/c++/6.2.1/iostream:39, from ../../src/bin/eolian_mono/eolian_mono.cc:2: /usr/include/c++/6.2.1/bits/range_access.h:105:37: note: candidate: template const _Tp* std::begin(const std::valarray<_Tp>&) template const _Tp* begin(const valarray<_Tp>&); ^~~~~ /usr/include/c++/6.2.1/bits/range_access.h:105:37: note: template argument deduction/substitution failed: In file included from ../../src/lib/eolian_cxx/grammar/klass_def.hpp:7:0, from ../../src/bin/eolian_mono/eolian_mono/klass.hh:5, from ../../src/bin/eolian_mono/eolian_mono.cc:25: ../../src/lib/eolian_cxx/grammar/string.hpp:63:31: note: ‘const std::tuple, std::allocator > >’ is not derived from ‘const std::valarray<_Tp>’ std::copy(std::begin(attribute), std::end(attribute), sink); ~~~~~~~~~~^~~~~~~~~~~ ../../src/lib/eolian_cxx/grammar/string.hpp:63:52: error: no matching function for call to ‘end(const std::tuple, std::allocator > >&)’ std::copy(std::begin(attribute), std::end(attribute), sink); ~~~~~~~~^~~~~~~~~~~ In file included from /usr/include/c++/6.2.1/bits/range_access.h:36:0, from /usr/include/c++/6.2.1/string:51, from /usr/include/c++/6.2.1/bits/locale_classes.h:40, from /usr/include/c++/6.2.1/bits/ios_base.h:41, from /usr/include/c++/6.2.1/ios:42, from /usr/include/c++/6.2.1/ostream:38, from /usr/include/c++/6.2.1/iostream:39, from ../../src/bin/eolian_mono/eolian_mono.cc:2: /usr/include/c++/6.2.1/initializer_list:99:5: note: candidate: template constexpr const _Tp* std::end(std::initializer_list<_Tp>) end(initializer_list<_Tp> __ils) noexcept ^~~ /usr/include/c++/6.2.1/initializer_list:99:5: note: template argument deduction/substitution failed: In file included from ../../src/lib/eolian_cxx/grammar/klass_def.hpp:7:0, from ../../src/bin/eolian_mono/eolian_mono/klass.hh:5, from ../../src/bin/eolian_mono/eolian_mono.cc:25: ../../src/lib/eolian_cxx/grammar/string.hpp:63:52: note: ‘std::tuple, std::allocator > >’ is not derived from ‘std::initializer_list<_Tp>’ std::copy(std::begin(attribute), std::end(attribute), sink); ~~~~~~~~^~~~~~~~~~~ In file included from /usr/include/c++/6.2.1/string:51:0, from /usr/include/c++/6.2.1/bits/locale_classes.h:40, from /usr/include/c++/6.2.1/bits/ios_base.h:41, from /usr/include/c++/6.2.1/ios:42, from /usr/include/c++/6.2.1/ostream:38, from /usr/include/c++/6.2.1/iostream:39, from ../../src/bin/eolian_mono/eolian_mono.cc:2: /usr/include/c++/6.2.1/bits/range_access.h:68:5: note: candidate: template decltype (__cont.end()) std::end(_Container&) end(_Container& __cont) -> decltype(__cont.end()) ^~~ /usr/include/c++/6.2.1/bits/range_access.h:68:5: note: template argument deduction/substitution failed: /usr/include/c++/6.2.1/bits/range_access.h: In substitution of ‘template decltype (__cont.end()) std::end(_Container&) [with _Container = const std::tuple, std::allocator > >]’: ../../src/lib/eolian_cxx/grammar/string.hpp:63:52: required from ‘bool efl::eolian::grammar::string_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator > >; Context = efl::eolian::grammar::context_cons]’ ../../src/bin/eolian_mono/eolian_mono/parameter.hh:33:91: required from ‘bool eolian_mono::argument_generator::generate(OutputIterator, const efl::eolian::grammar::attributes::parameter_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/lib/eolian_cxx/grammar/attributes.hpp:180:48: required from ‘bool efl::eolian::grammar::attributes::generate(const Generator&, OutputIterator, const Attribute&, const Context&, typename std::enable_if<((! efl::eolian::grammar::type_traits::is_explicit_tuple::value) && (efl::eolian::grammar::type_traits::attributes_needed::value != 0))>::type*) [with Generator = eolian_mono::argument_generator; OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; typename std::enable_if<((! efl::eolian::grammar::type_traits::is_explicit_tuple::value) && (efl::eolian::grammar::type_traits::attributes_needed::value != 0))>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:26:36: required from ‘bool efl::eolian::grammar::generate_sequence(const L&, const R&, OutputIterator, const Attribute&, const Context&, typename std::enable_if::value>::type*) [with L = const char*; R = eolian_mono::argument_generator; OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; typename std::enable_if::value>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:109:40: required from ‘bool efl::eolian::grammar::sequence_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; L = const char*; R = eolian_mono::argument_generator]’ ../../src/lib/eolian_cxx/grammar/kleene.hpp:20:14: [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ] ../../src/lib/eolian_cxx/grammar/sequence.hpp:26:36: required from ‘bool efl::eolian::grammar::generate_sequence(const L&, const R&, OutputIterator, const Attribute&, const Context&, typename std::enable_if::value>::type*) [with L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >, const char*>, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>; R = efl::eolian::grammar::kleene_generator >; OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; typename std::enable_if::value>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:109:40: required from ‘bool efl::eolian::grammar::sequence_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >, const char*>, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>; R = efl::eolian::grammar::kleene_generator >]’ ../../src/bin/eolian_mono/eolian_mono/function_definition.hh:37:8: required from ‘bool eolian_mono::function_definition_generator::generate(OutputIterator, const efl::eolian::grammar::attributes::function_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/lib/eolian_cxx/grammar/kleene.hpp:20:14: required from ‘bool efl::eolian::grammar::kleene_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::vector; Context = efl::eolian::grammar::context_cons; Generator = eolian_mono::function_definition_generator]’ ../../src/bin/eolian_mono/eolian_mono/klass.hh:112:13: required from ‘bool eolian_mono::klass::generate(OutputIterator, const efl::eolian::grammar::attributes::klass_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/bin/eolian_mono/eolian_mono.cc:95:139: required from here /usr/include/c++/6.2.1/bits/range_access.h:68:48: error: ‘const class std::tuple, std::allocator > >’ has no member named ‘end’ end(_Container& __cont) -> decltype(__cont.end()) ~~~~~~~^~~ ../../src/lib/eolian_cxx/grammar/string.hpp: In instantiation of ‘bool efl::eolian::grammar::string_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator > >; Context = efl::eolian::grammar::context_cons]’: ../../src/bin/eolian_mono/eolian_mono/parameter.hh:33:91: required from ‘bool eolian_mono::argument_generator::generate(OutputIterator, const efl::eolian::grammar::attributes::parameter_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/lib/eolian_cxx/grammar/attributes.hpp:180:48: required from ‘bool efl::eolian::grammar::attributes::generate(const Generator&, OutputIterator, const Attribute&, const Context&, typename std::enable_if<((! efl::eolian::grammar::type_traits::is_explicit_tuple::value) && (efl::eolian::grammar::type_traits::attributes_needed::value != 0))>::type*) [with Generator = eolian_mono::argument_generator; OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; typename std::enable_if<((! efl::eolian::grammar::type_traits::is_explicit_tuple::value) && (efl::eolian::grammar::type_traits::attributes_needed::value != 0))>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:26:36: required from ‘bool efl::eolian::grammar::generate_sequence(const L&, const R&, OutputIterator, const Attribute&, const Context&, typename std::enable_if::value>::type*) [with L = const char*; R = eolian_mono::argument_generator; OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; typename std::enable_if::value>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:109:40: required from ‘bool efl::eolian::grammar::sequence_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; L = const char*; R = eolian_mono::argument_generator]’ ../../src/lib/eolian_cxx/grammar/kleene.hpp:20:14: [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ] ../../src/lib/eolian_cxx/grammar/sequence.hpp:26:36: required from ‘bool efl::eolian::grammar::generate_sequence(const L&, const R&, OutputIterator, const Attribute&, const Context&, typename std::enable_if::value>::type*) [with L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >, const char*>, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>; R = efl::eolian::grammar::kleene_generator >; OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; typename std::enable_if::value>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:109:40: required from ‘bool efl::eolian::grammar::sequence_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >, const char*>, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>; R = efl::eolian::grammar::kleene_generator >]’ ../../src/bin/eolian_mono/eolian_mono/function_definition.hh:37:8: required from ‘bool eolian_mono::function_definition_generator::generate(OutputIterator, const efl::eolian::grammar::attributes::function_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/lib/eolian_cxx/grammar/kleene.hpp:20:14: required from ‘bool efl::eolian::grammar::kleene_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::vector; Context = efl::eolian::grammar::context_cons; Generator = eolian_mono::function_definition_generator]’ ../../src/bin/eolian_mono/eolian_mono/klass.hh:112:13: required from ‘bool eolian_mono::klass::generate(OutputIterator, const efl::eolian::grammar::attributes::klass_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/bin/eolian_mono/eolian_mono.cc:95:139: required from here /usr/include/c++/6.2.1/bits/range_access.h:78:5: note: candidate: template decltype (__cont.end()) std::end(const _Container&) end(const _Container& __cont) -> decltype(__cont.end()) ^~~ /usr/include/c++/6.2.1/bits/range_access.h:78:5: note: template argument deduction/substitution failed: /usr/include/c++/6.2.1/bits/range_access.h: In substitution of ‘template decltype (__cont.end()) std::end(const _Container&) [with _Container = std::tuple, std::allocator > >]’: ../../src/lib/eolian_cxx/grammar/string.hpp:63:52: required from ‘bool efl::eolian::grammar::string_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator > >; Context = efl::eolian::grammar::context_cons]’ ../../src/bin/eolian_mono/eolian_mono/parameter.hh:33:91: required from ‘bool eolian_mono::argument_generator::generate(OutputIterator, const efl::eolian::grammar::attributes::parameter_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/lib/eolian_cxx/grammar/attributes.hpp:180:48: required from ‘bool efl::eolian::grammar::attributes::generate(const Generator&, OutputIterator, const Attribute&, const Context&, typename std::enable_if<((! efl::eolian::grammar::type_traits::is_explicit_tuple::value) && (efl::eolian::grammar::type_traits::attributes_needed::value != 0))>::type*) [with Generator = eolian_mono::argument_generator; OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; typename std::enable_if<((! efl::eolian::grammar::type_traits::is_explicit_tuple::value) && (efl::eolian::grammar::type_traits::attributes_needed::value != 0))>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:26:36: required from ‘bool efl::eolian::grammar::generate_sequence(const L&, const R&, OutputIterator, const Attribute&, const Context&, typename std::enable_if::value>::type*) [with L = const char*; R = eolian_mono::argument_generator; OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; typename std::enable_if::value>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:109:40: required from ‘bool efl::eolian::grammar::sequence_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; L = const char*; R = eolian_mono::argument_generator]’ ../../src/lib/eolian_cxx/grammar/kleene.hpp:20:14: [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ] ../../src/lib/eolian_cxx/grammar/sequence.hpp:26:36: required from ‘bool efl::eolian::grammar::generate_sequence(const L&, const R&, OutputIterator, const Attribute&, const Context&, typename std::enable_if::value>::type*) [with L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >, const char*>, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>; R = efl::eolian::grammar::kleene_generator >; OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; typename std::enable_if::value>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:109:40: required from ‘bool efl::eolian::grammar::sequence_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >, const char*>, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>; R = efl::eolian::grammar::kleene_generator >]’ ../../src/bin/eolian_mono/eolian_mono/function_definition.hh:37:8: required from ‘bool eolian_mono::function_definition_generator::generate(OutputIterator, const efl::eolian::grammar::attributes::function_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/lib/eolian_cxx/grammar/kleene.hpp:20:14: required from ‘bool efl::eolian::grammar::kleene_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::vector; Context = efl::eolian::grammar::context_cons; Generator = eolian_mono::function_definition_generator]’ ../../src/bin/eolian_mono/eolian_mono/klass.hh:112:13: required from ‘bool eolian_mono::klass::generate(OutputIterator, const efl::eolian::grammar::attributes::klass_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/bin/eolian_mono/eolian_mono.cc:95:139: required from here /usr/include/c++/6.2.1/bits/range_access.h:78:54: error: ‘const class std::tuple, std::allocator > >’ has no member named ‘end’ end(const _Container& __cont) -> decltype(__cont.end()) ~~~~~~~^~~ ../../src/lib/eolian_cxx/grammar/string.hpp: In instantiation of ‘bool efl::eolian::grammar::string_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator > >; Context = efl::eolian::grammar::context_cons]’: ../../src/bin/eolian_mono/eolian_mono/parameter.hh:33:91: required from ‘bool eolian_mono::argument_generator::generate(OutputIterator, const efl::eolian::grammar::attributes::parameter_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/lib/eolian_cxx/grammar/attributes.hpp:180:48: required from ‘bool efl::eolian::grammar::attributes::generate(const Generator&, OutputIterator, const Attribute&, const Context&, typename std::enable_if<((! efl::eolian::grammar::type_traits::is_explicit_tuple::value) && (efl::eolian::grammar::type_traits::attributes_needed::value != 0))>::type*) [with Generator = eolian_mono::argument_generator; OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; typename std::enable_if<((! efl::eolian::grammar::type_traits::is_explicit_tuple::value) && (efl::eolian::grammar::type_traits::attributes_needed::value != 0))>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:26:36: required from ‘bool efl::eolian::grammar::generate_sequence(const L&, const R&, OutputIterator, const Attribute&, const Context&, typename std::enable_if::value>::type*) [with L = const char*; R = eolian_mono::argument_generator; OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; typename std::enable_if::value>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:109:40: required from ‘bool efl::eolian::grammar::sequence_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::parameter_def; Context = efl::eolian::grammar::context_cons; L = const char*; R = eolian_mono::argument_generator]’ ../../src/lib/eolian_cxx/grammar/kleene.hpp:20:14: [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ] ../../src/lib/eolian_cxx/grammar/sequence.hpp:26:36: required from ‘bool efl::eolian::grammar::generate_sequence(const L&, const R&, OutputIterator, const Attribute&, const Context&, typename std::enable_if::value>::type*) [with L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >, const char*>, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>; R = efl::eolian::grammar::kleene_generator >; OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; typename std::enable_if::value>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:109:40: required from ‘bool efl::eolian::grammar::sequence_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >, const char*>, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>; R = efl::eolian::grammar::kleene_generator >]’ ../../src/bin/eolian_mono/eolian_mono/function_definition.hh:37:8: required from ‘bool eolian_mono::function_definition_generator::generate(OutputIterator, const efl::eolian::grammar::attributes::function_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/lib/eolian_cxx/grammar/kleene.hpp:20:14: required from ‘bool efl::eolian::grammar::kleene_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::vector; Context = efl::eolian::grammar::context_cons; Generator = eolian_mono::function_definition_generator]’ ../../src/bin/eolian_mono/eolian_mono/klass.hh:112:13: required from ‘bool eolian_mono::klass::generate(OutputIterator, const efl::eolian::grammar::attributes::klass_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/bin/eolian_mono/eolian_mono.cc:95:139: required from here /usr/include/c++/6.2.1/bits/range_access.h:97:5: note: candidate: template constexpr _Tp* std::end(_Tp (&)[_Nm]) end(_Tp (&__arr)[_Nm]) ^~~ /usr/include/c++/6.2.1/bits/range_access.h:97:5: note: template argument deduction/substitution failed: In file included from ../../src/lib/eolian_cxx/grammar/klass_def.hpp:7:0, from ../../src/bin/eolian_mono/eolian_mono/klass.hh:5, from ../../src/bin/eolian_mono/eolian_mono.cc:25: ../../src/lib/eolian_cxx/grammar/string.hpp:63:52: note: mismatched types ‘_Tp [_Nm]’ and ‘const std::tuple, std::allocator > >’ std::copy(std::begin(attribute), std::end(attribute), sink); ~~~~~~~~^~~~~~~~~~~ In file included from /usr/include/c++/6.2.1/string:51:0, from /usr/include/c++/6.2.1/bits/locale_classes.h:40, from /usr/include/c++/6.2.1/bits/ios_base.h:41, from /usr/include/c++/6.2.1/ios:42, from /usr/include/c++/6.2.1/ostream:38, from /usr/include/c++/6.2.1/iostream:39, from ../../src/bin/eolian_mono/eolian_mono.cc:2: /usr/include/c++/6.2.1/bits/range_access.h:106:31: note: candidate: template _Tp* std::end(std::valarray<_Tp>&) template _Tp* end(valarray<_Tp>&); ^~~ /usr/include/c++/6.2.1/bits/range_access.h:106:31: note: template argument deduction/substitution failed: In file included from ../../src/lib/eolian_cxx/grammar/klass_def.hpp:7:0, from ../../src/bin/eolian_mono/eolian_mono/klass.hh:5, from ../../src/bin/eolian_mono/eolian_mono.cc:25: ../../src/lib/eolian_cxx/grammar/string.hpp:63:52: note: types ‘std::valarray<_Tp>’ and ‘const std::tuple, std::allocator > >’ have incompatible cv-qualifiers std::copy(std::begin(attribute), std::end(attribute), sink); ~~~~~~~~^~~~~~~~~~~ In file included from /usr/include/c++/6.2.1/string:51:0, from /usr/include/c++/6.2.1/bits/locale_classes.h:40, from /usr/include/c++/6.2.1/bits/ios_base.h:41, from /usr/include/c++/6.2.1/ios:42, from /usr/include/c++/6.2.1/ostream:38, from /usr/include/c++/6.2.1/iostream:39, from ../../src/bin/eolian_mono/eolian_mono.cc:2: /usr/include/c++/6.2.1/bits/range_access.h:107:37: note: candidate: template const _Tp* std::end(const std::valarray<_Tp>&) template const _Tp* end(const valarray<_Tp>&); ^~~ /usr/include/c++/6.2.1/bits/range_access.h:107:37: note: template argument deduction/substitution failed: In file included from ../../src/lib/eolian_cxx/grammar/klass_def.hpp:7:0, from ../../src/bin/eolian_mono/eolian_mono/klass.hh:5, from ../../src/bin/eolian_mono/eolian_mono.cc:25: ../../src/lib/eolian_cxx/grammar/string.hpp:63:52: note: ‘const std::tuple, std::allocator > >’ is not derived from ‘const std::valarray<_Tp>’ std::copy(std::begin(attribute), std::end(attribute), sink); ~~~~~~~~^~~~~~~~~~~ In file included from /usr/include/c++/6.2.1/algorithm:62:0, from ../../src/bin/eolian_mono/eolian_mono.cc:11: /usr/include/c++/6.2.1/bits/stl_algo.h: In instantiation of ‘_OIter std::transform(_IIter, _IIter, _OIter, _UnaryOperation) [with _IIter = __gnu_cxx::__normal_iterator >; _OIter = std::ostream_iterator; _UnaryOperation = int (*)(int) throw ()]’: ../../src/lib/eolian_cxx/grammar/string.hpp:55:25: required from ‘bool efl::eolian::grammar::string_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::vector; Context = efl::eolian::grammar::context_cons]’ ../../src/lib/eolian_cxx/grammar/attributes.hpp:149:56: required from ‘bool efl::eolian::grammar::attributes::generate(const Generator&, OutputIterator, const Attribute&, const Context&, typename std::enable_if<((efl::eolian::grammar::type_traits::is_explicit_tuple::value && (! efl::eolian::grammar::type_traits::accepts_tuple::value)) && (efl::eolian::grammar::type_traits::attributes_needed::value != 0))>::type*) [with Generator = efl::eolian::grammar::string_generator; OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::lazy_offset_tuple<2, const std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > > >; Context = efl::eolian::grammar::context_cons; typename std::enable_if<((efl::eolian::grammar::type_traits::is_explicit_tuple::value && (! efl::eolian::grammar::type_traits::accepts_tuple::value)) && (efl::eolian::grammar::type_traits::attributes_needed::value != 0))>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:26:36: required from ‘bool efl::eolian::grammar::generate_sequence(const L&, const R&, OutputIterator, const Attribute&, const Context&, typename std::enable_if::value>::type*) [with L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >, const char*>, const char*>; R = efl::eolian::grammar::string_generator_terminal; OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; typename std::enable_if::value>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:109:40: required from ‘bool efl::eolian::grammar::sequence_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >, const char*>, const char*>; R = efl::eolian::grammar::string_generator_terminal]’ ../../src/lib/eolian_cxx/grammar/attributes.hpp:160:48: required from ‘bool efl::eolian::grammar::attributes::generate(const Generator&, OutputIterator, const Attribute&, const Context&, typename std::enable_if<((efl::eolian::grammar::type_traits::is_explicit_tuple::value && efl::eolian::grammar::type_traits::accepts_tuple::value) && (efl::eolian::grammar::type_traits::attributes_needed::value != 0))>::type*) [with Generator = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >, const char*>, const char*>, efl::eolian::grammar::string_generator_terminal>; OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; typename std::enable_if<((efl::eolian::grammar::type_traits::is_explicit_tuple::value && efl::eolian::grammar::type_traits::accepts_tuple::value) && (efl::eolian::grammar::type_traits::attributes_needed::value != 0))>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:23:33: [ skipping 3 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ] ../../src/lib/eolian_cxx/grammar/sequence.hpp:23:33: required from ‘bool efl::eolian::grammar::generate_sequence(const L&, const R&, OutputIterator, const Attribute&, const Context&, typename std::enable_if::value>::type*) [with L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >, const char*>, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>; R = efl::eolian::grammar::kleene_generator >; OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; typename std::enable_if::value>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:109:40: required from ‘bool efl::eolian::grammar::sequence_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >, const char*>, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>; R = efl::eolian::grammar::kleene_generator >]’ ../../src/bin/eolian_mono/eolian_mono/function_definition.hh:37:8: required from ‘bool eolian_mono::function_definition_generator::generate(OutputIterator, const efl::eolian::grammar::attributes::function_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/lib/eolian_cxx/grammar/kleene.hpp:20:14: required from ‘bool efl::eolian::grammar::kleene_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::vector; Context = efl::eolian::grammar::context_cons; Generator = eolian_mono::function_definition_generator]’ ../../src/bin/eolian_mono/eolian_mono/klass.hh:112:13: required from ‘bool eolian_mono::klass::generate(OutputIterator, const efl::eolian::grammar::attributes::klass_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/bin/eolian_mono/eolian_mono.cc:95:139: required from here /usr/include/c++/6.2.1/bits/stl_algo.h:4177:24: error: cannot convert ‘const efl::eolian::grammar::attributes::parameter_def’ to ‘int’ in argument passing *__result = __unary_op(*__first); ~~~~~~~~~~^~~~~~~~~~ In file included from /usr/include/c++/6.2.1/bits/char_traits.h:39:0, from /usr/include/c++/6.2.1/ios:40, from /usr/include/c++/6.2.1/ostream:38, from /usr/include/c++/6.2.1/iostream:39, from ../../src/bin/eolian_mono/eolian_mono.cc:2: /usr/include/c++/6.2.1/bits/stl_algobase.h: In instantiation of ‘static _OI std::__copy_move::__copy_m(_II, _II, _OI) [with _II = const efl::eolian::grammar::attributes::parameter_def*; _OI = std::ostream_iterator]’: /usr/include/c++/6.2.1/bits/stl_algobase.h:386:44: required from ‘_OI std::__copy_move_a(_II, _II, _OI) [with bool _IsMove = false; _II = const efl::eolian::grammar::attributes::parameter_def*; _OI = std::ostream_iterator]’ /usr/include/c++/6.2.1/bits/stl_algobase.h:422:45: required from ‘_OI std::__copy_move_a2(_II, _II, _OI) [with bool _IsMove = false; _II = __gnu_cxx::__normal_iterator >; _OI = std::ostream_iterator]’ /usr/include/c++/6.2.1/bits/stl_algobase.h:455:8: required from ‘_OI std::copy(_II, _II, _OI) [with _II = __gnu_cxx::__normal_iterator >; _OI = std::ostream_iterator]’ ../../src/lib/eolian_cxx/grammar/string.hpp:63:20: required from ‘bool efl::eolian::grammar::string_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::vector; Context = efl::eolian::grammar::context_cons]’ ../../src/lib/eolian_cxx/grammar/attributes.hpp:149:56: required from ‘bool efl::eolian::grammar::attributes::generate(const Generator&, OutputIterator, const Attribute&, const Context&, typename std::enable_if<((efl::eolian::grammar::type_traits::is_explicit_tuple::value && (! efl::eolian::grammar::type_traits::accepts_tuple::value)) && (efl::eolian::grammar::type_traits::attributes_needed::value != 0))>::type*) [with Generator = efl::eolian::grammar::string_generator; OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::lazy_offset_tuple<2, const std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > > >; Context = efl::eolian::grammar::context_cons; typename std::enable_if<((efl::eolian::grammar::type_traits::is_explicit_tuple::value && (! efl::eolian::grammar::type_traits::accepts_tuple::value)) && (efl::eolian::grammar::type_traits::attributes_needed::value != 0))>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:26:36: [ skipping 6 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ] ../../src/lib/eolian_cxx/grammar/sequence.hpp:23:33: required from ‘bool efl::eolian::grammar::generate_sequence(const L&, const R&, OutputIterator, const Attribute&, const Context&, typename std::enable_if::value>::type*) [with L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >, const char*>, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>; R = efl::eolian::grammar::kleene_generator >; OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; typename std::enable_if::value>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:109:40: required from ‘bool efl::eolian::grammar::sequence_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >, const char*>, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>; R = efl::eolian::grammar::kleene_generator >]’ ../../src/bin/eolian_mono/eolian_mono/function_definition.hh:37:8: required from ‘bool eolian_mono::function_definition_generator::generate(OutputIterator, const efl::eolian::grammar::attributes::function_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/lib/eolian_cxx/grammar/kleene.hpp:20:14: required from ‘bool efl::eolian::grammar::kleene_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::vector; Context = efl::eolian::grammar::context_cons; Generator = eolian_mono::function_definition_generator]’ ../../src/bin/eolian_mono/eolian_mono/klass.hh:112:13: required from ‘bool eolian_mono::klass::generate(OutputIterator, const efl::eolian::grammar::attributes::klass_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/bin/eolian_mono/eolian_mono.cc:95:139: required from here /usr/include/c++/6.2.1/bits/stl_algobase.h:324:18: error: no match for ‘operator=’ (operand types are ‘std::ostream_iterator’ and ‘const efl::eolian::grammar::attributes::parameter_def’) *__result = *__first; ~~~~~~~~~~^~~~~~~~~~ In file included from /usr/include/c++/6.2.1/iterator:66:0, from ../../src/bindings/cxx/eina_cxx/eina_iterator.hh:9, from ../../src/bindings/cxx/eina_cxx/Eina.hh:8, from ../../src/bin/eolian_mono/eolian_mono.cc:22: /usr/include/c++/6.2.1/bits/stream_iterator.h:193:7: note: candidate: std::ostream_iterator<_Tp, _CharT, _Traits>& std::ostream_iterator<_Tp, _CharT, _Traits>::operator=(const _Tp&) [with _Tp = char; _CharT = char; _Traits = std::char_traits] operator=(const _Tp& __value) ^~~~~~~~ /usr/include/c++/6.2.1/bits/stream_iterator.h:193:7: note: no known conversion for argument 1 from ‘const efl::eolian::grammar::attributes::parameter_def’ to ‘const char&’ /usr/include/c++/6.2.1/bits/stream_iterator.h:154:11: note: candidate: constexpr std::ostream_iterator& std::ostream_iterator::operator=(const std::ostream_iterator&) class ostream_iterator ^~~~~~~~~~~~~~~~ /usr/include/c++/6.2.1/bits/stream_iterator.h:154:11: note: no known conversion for argument 1 from ‘const efl::eolian::grammar::attributes::parameter_def’ to ‘const std::ostream_iterator&’ In file included from ../../src/bin/eolian_mono/eolian_mono/klass.hh:8:0, from ../../src/bin/eolian_mono/eolian_mono.cc:25: ../../src/lib/eolian_cxx/grammar/list.hpp: In instantiation of ‘bool efl::eolian::grammar::list_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::__cxx11::basic_string; Context = efl::eolian::grammar::context_cons; G = eolian_mono::parameter_generator; S = const char*]’: ../../src/lib/eolian_cxx/grammar/attributes.hpp:149:56: required from ‘bool efl::eolian::grammar::attributes::generate(const Generator&, OutputIterator, const Attribute&, const Context&, typename std::enable_if<((efl::eolian::grammar::type_traits::is_explicit_tuple::value && (! efl::eolian::grammar::type_traits::accepts_tuple::value)) && (efl::eolian::grammar::type_traits::attributes_needed::value != 0))>::type*) [with Generator = efl::eolian::grammar::list_generator; OutputIterator = std::ostream_iterator; Attribute = efl::eolian::grammar::attributes::lazy_offset_tuple<1, const std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > > >; Context = efl::eolian::grammar::context_cons; typename std::enable_if<((efl::eolian::grammar::type_traits::is_explicit_tuple::value && (! efl::eolian::grammar::type_traits::accepts_tuple::value)) && (efl::eolian::grammar::type_traits::attributes_needed::value != 0))>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:26:36: required from ‘bool efl::eolian::grammar::generate_sequence(const L&, const R&, OutputIterator, const Attribute&, const Context&, typename std::enable_if::value>::type*) [with L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>; R = efl::eolian::grammar::list_generator; OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; typename std::enable_if::value>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:109:40: required from ‘bool efl::eolian::grammar::sequence_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>; R = efl::eolian::grammar::list_generator]’ ../../src/lib/eolian_cxx/grammar/attributes.hpp:160:48: required from ‘bool efl::eolian::grammar::attributes::generate(const Generator&, OutputIterator, const Attribute&, const Context&, typename std::enable_if<((efl::eolian::grammar::type_traits::is_explicit_tuple::value && efl::eolian::grammar::type_traits::accepts_tuple::value) && (efl::eolian::grammar::type_traits::attributes_needed::value != 0))>::type*) [with Generator = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >; OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; typename std::enable_if<((efl::eolian::grammar::type_traits::is_explicit_tuple::value && efl::eolian::grammar::type_traits::accepts_tuple::value) && (efl::eolian::grammar::type_traits::attributes_needed::value != 0))>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:23:33: required from ‘bool efl::eolian::grammar::generate_sequence(const L&, const R&, OutputIterator, const Attribute&, const Context&, typename std::enable_if::value>::type*) [with L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >; R = const char*; OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; typename std::enable_if::value>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:109:40: [ skipping 11 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ] ../../src/lib/eolian_cxx/grammar/sequence.hpp:23:33: required from ‘bool efl::eolian::grammar::generate_sequence(const L&, const R&, OutputIterator, const Attribute&, const Context&, typename std::enable_if::value>::type*) [with L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >, const char*>, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>; R = efl::eolian::grammar::kleene_generator >; OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; typename std::enable_if::value>::type = void]’ ../../src/lib/eolian_cxx/grammar/sequence.hpp:109:40: required from ‘bool efl::eolian::grammar::sequence_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector >, std::vector > >; Context = efl::eolian::grammar::context_cons; L = efl::eolian::grammar::sequence_generator, std::__cxx11::basic_string >, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>, efl::eolian::grammar::list_generator >, const char*>, const char*>, efl::eolian::grammar::string_generator_terminal>, const char*>; R = efl::eolian::grammar::kleene_generator >]’ ../../src/bin/eolian_mono/eolian_mono/function_definition.hh:37:8: required from ‘bool eolian_mono::function_definition_generator::generate(OutputIterator, const efl::eolian::grammar::attributes::function_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/lib/eolian_cxx/grammar/kleene.hpp:20:14: required from ‘bool efl::eolian::grammar::kleene_generator::generate(OutputIterator, const Attribute&, const Context&) const [with OutputIterator = std::ostream_iterator; Attribute = std::vector; Context = efl::eolian::grammar::context_cons; Generator = eolian_mono::function_definition_generator]’ ../../src/bin/eolian_mono/eolian_mono/klass.hh:112:13: required from ‘bool eolian_mono::klass::generate(OutputIterator, const efl::eolian::grammar::attributes::klass_def&, const Context&) const [with OutputIterator = std::ostream_iterator; Context = efl::eolian::grammar::context_cons]’ ../../src/bin/eolian_mono/eolian_mono.cc:95:139: required from here ../../src/lib/eolian_cxx/grammar/list.hpp:24:15: error: no matching function for call to ‘eolian_mono::parameter_generator::generate(std::ostream_iterator&, const char&, const efl::eolian::grammar::context_cons&)’ if(!generator.generate(sink, c, context)) In file included from ../../src/bin/eolian_mono/eolian_mono/function_definition.hh:11:0, from ../../src/bin/eolian_mono/eolian_mono/klass.hh:12, from ../../src/bin/eolian_mono/eolian_mono.cc:25: ../../src/bin/eolian_mono/eolian_mono/parameter.hh:20:9: note: candidate: template bool eolian_mono::parameter_generator::generate(OutputIterator, const efl::eolian::grammar::attributes::parameter_def&, const Context&) const bool generate(OutputIterator sink, attributes::parameter_def const& param, Context const& context) const ^~~~~~~~ ../../src/bin/eolian_mono/eolian_mono/parameter.hh:20:9: note: template argument deduction/substitution failed: In file included from ../../src/bin/eolian_mono/eolian_mono/klass.hh:8:0, from ../../src/bin/eolian_mono/eolian_mono.cc:25: ../../src/lib/eolian_cxx/grammar/list.hpp:24:15: note: cannot convert ‘c’ (type ‘const char’) to type ‘const efl::eolian::grammar::attributes::parameter_def&’ if(!generator.generate(sink, c, context)) make[3]: *** [Makefile:47121: bin/eolian_mono/bin_eolian_mono_eolian_mono-eolian_mono.o] Error 1 make[2]: *** [Makefile:50657: check-recursive] Error 1 make[1]: *** [Makefile:51331: check] Error 2 make: *** [Makefile:2974: check-recursive] Error 1