Skip to content

Instantly share code, notes, and snippets.

@cviebig
Created October 9, 2015 16:58
Show Gist options
  • Save cviebig/e1f42ca485a5ed455631 to your computer and use it in GitHub Desktop.
Save cviebig/e1f42ca485a5ed455631 to your computer and use it in GitHub Desktop.
min5 compiles fine, minast5 not :|
/*=============================================================================
Copyright (c) 2001-2015 Joel de Guzman
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
=============================================================================*/
#include <boost/config/warning_disable.hpp>
#include <boost/spirit/home/x3.hpp>
#include <boost/spirit/home/x3/support/ast/position_tagged.hpp>
#include <boost/spirit/home/x3/support/ast/variant.hpp>
#include <boost/fusion/include/adapt_struct.hpp>
#include <boost/fusion/include/std_pair.hpp>
#include <boost/fusion/include/io.hpp>
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
namespace sql { namespace parser
{
namespace x3 = boost::spirit::x3;
namespace ascii = boost::spirit::x3::ascii;
using x3::attr;
using x3::lit;
using x3::matches;
using x3::omit;
using x3::char_;
auto const select_stmt_def = attr(true);
auto const explain_clause_def = attr(true);
auto const sql_stmt_def = explain_clause_def >> select_stmt_def;
auto const sql_stmt_list_def = sql_stmt_def % ';';
}}
///////////////////////////////////////////////////////////////////////////////
// Main program
///////////////////////////////////////////////////////////////////////////////
int main(int argc, char **argv)
{
std::cout << "Give input to parse or type [q or Q] to quit\n\n";
std::string str;
while (getline(std::cin, str))
{
if (str.empty() || str[0] == 'q' || str[0] == 'Q')
break;
using sql::parser::sql_stmt_list_def; // Our grammar
using boost::spirit::x3::ascii::space;
auto iter(str.begin());
auto const end(str.end());
if (phrase_parse(iter, end, sql_stmt_list_def, space)) {
if(iter == end) {
std::cout << "Parsing succeeded and the whole string was consumed\n";
} else {
std::cout << "Parsing succeeded but only a part of the string was consumed\n";
}
} else {
std::cout << "Parsing failed\n";
}
}
return 0;
}
/*=============================================================================
Copyright (c) 2001-2015 Joel de Guzman
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
=============================================================================*/
#include <boost/config/warning_disable.hpp>
#include <boost/spirit/home/x3.hpp>
#include <boost/spirit/home/x3/support/ast/position_tagged.hpp>
#include <boost/spirit/home/x3/support/ast/variant.hpp>
#include <boost/fusion/include/adapt_struct.hpp>
#include <boost/fusion/include/std_pair.hpp>
#include <boost/fusion/include/io.hpp>
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
namespace sql { namespace ast
{
struct select_stmt : boost::spirit::x3::position_tagged
{
bool a;
};
struct explain_clause : boost::spirit::x3::position_tagged {
bool b;
};
struct sql_stmt : boost::spirit::x3::position_tagged
{
explain_clause explain;
select_stmt stmt;
};
typedef std::vector<sql_stmt> sql_stmt_list;
}}
BOOST_FUSION_ADAPT_STRUCT(sql::ast::select_stmt, a)
BOOST_FUSION_ADAPT_STRUCT(sql::ast::explain_clause, b)
BOOST_FUSION_ADAPT_STRUCT(sql::ast::sql_stmt,
(sql::ast::explain_clause, explain)
(sql::ast::select_stmt, stmt)
)
namespace sql { namespace ast
{
struct sql_printer
{
sql_printer(std::ostream& out)
: out(out) {}
void operator()(ast::explain_clause const& ast) const
{
out << ast.b;
}
void operator()(ast::sql_stmt const& ast) const
{
sql_printer{out}(ast.explain);
sql_printer{out}(ast.stmt);
}
void operator()(ast::select_stmt const& ast) const
{
out << ast.a;
}
void operator()(ast::sql_stmt_list const& ast) const
{
for (auto const& stmt : ast)
{
sql_printer{out}(stmt);
out << ";";
}
}
std::ostream& out;
};
}}
namespace sql { namespace parser
{
namespace x3 = boost::spirit::x3;
namespace ascii = boost::spirit::x3::ascii;
using x3::attr;
using x3::lit;
using x3::matches;
using x3::omit;
using x3::char_;
struct select_stmt_class;
struct explain_clause_class;
struct sql_stmt_class;
struct sql_stmt_list_class;
x3::rule<select_stmt_class, ast::select_stmt> const
select_stmt = "select_stmt";
x3::rule<explain_clause_class, ast::explain_clause> const
explain_clause = "explain_clause";
x3::rule<sql_stmt_class, ast::sql_stmt> const
sql_stmt = "sql_stmt";
x3::rule<sql_stmt_list_class, ast::sql_stmt_list> const
sql_stmt_list = "sql_stmt_list";
auto const select_stmt_def = attr(true);
auto const explain_clause_def = attr(true);
auto const sql_stmt_def = explain_clause_def >> select_stmt_def;
auto const sql_stmt_list_def = sql_stmt_def % ';';
BOOST_SPIRIT_DEFINE(select_stmt, explain_clause, sql_stmt, sql_stmt_list);
}}
///////////////////////////////////////////////////////////////////////////////
// Main program
///////////////////////////////////////////////////////////////////////////////
int main(int argc, char **argv)
{
std::cout << "Give input to parse or type [q or Q] to quit\n\n";
std::string str;
while (getline(std::cin, str))
{
if (str.empty() || str[0] == 'q' || str[0] == 'Q')
break;
using sql::parser::sql_stmt_list; // Our grammar
sql::ast::sql_stmt_list ast; // Our tree
using boost::spirit::x3::ascii::space;
auto iter(str.begin());
auto const end(str.end());
if (phrase_parse(iter, end, sql_stmt_list, space, ast)) {
if(iter == end) {
std::cout << "Parsing succeeded and the whole string was consumed\n";
} else {
std::cout << "Parsing succeeded but only a part of the string was consumed\n";
}
sql::ast::sql_printer printer(std::cout);
printer(ast);
std::cout << "\n";
} else {
std::cout << "Parsing failed\n";
}
}
return 0;
}
In file included from min/minast5.cpp:9:
In file included from /libs/boost_1_59_0/boost/spirit/home/x3.hpp:14:
In file included from /libs/boost_1_59_0/boost/spirit/home/x3/auxiliary.hpp:11:
In file included from /libs/boost_1_59_0/boost/spirit/home/x3/auxiliary/any_parser.hpp:17:
/libs/boost_1_59_0/boost/spirit/home/x3/support/traits/move_to.hpp:173:9: error: no matching function for call to 'move_to'
detail::move_to(std::move(src), dest
^~~~~~~~~~~~~~~
/libs/boost_1_59_0/boost/spirit/home/x3/auxiliary/attr.hpp:47:21: note: in instantiation of function template specialization
'boost::spirit::x3::traits::move_to<const bool &, sql::ast::sql_stmt>' requested here
traits::move_to(value_, attr_);
^
/libs/boost_1_59_0/boost/spirit/home/x3/core/detail/parse_into_container.hpp:101:25: note: in instantiation of function template
specialization 'boost::spirit::x3::attr_parser<bool>::parse<__gnu_cxx::__normal_iterator<char *, std::basic_string<char> >,
boost::spirit::x3::context<boost::spirit::x3::skipper_tag, const boost::spirit::x3::char_class<boost::spirit::char_encoding::ascii,
boost::spirit::x3::space_tag>, boost::spirit::x3::unused_type>, std::vector<sql::ast::sql_stmt, std::allocator<sql::ast::sql_stmt> >,
sql::ast::sql_stmt>' requested here
if (!parser.parse(first, last, context, rcontext, val))
^
/libs/boost_1_59_0/boost/spirit/home/x3/core/detail/parse_into_container.hpp:132:20: note: in instantiation of function template
specialization 'boost::spirit::x3::detail::parse_into_container_base_impl<boost::spirit::x3::attr_parser<bool>
>::call_synthesize_x<__gnu_cxx::__normal_iterator<char *, std::basic_string<char> >, boost::spirit::x3::context<boost::spirit::x3::skipper_tag, const
boost::spirit::x3::char_class<boost::spirit::char_encoding::ascii, boost::spirit::x3::space_tag>, boost::spirit::x3::unused_type>,
std::vector<sql::ast::sql_stmt, std::allocator<sql::ast::sql_stmt> >, std::vector<sql::ast::sql_stmt, std::allocator<sql::ast::sql_stmt> > >' requested
here
return call_synthesize_x(parser, first, last, context, rcontext, attr
^
/libs/boost_1_59_0/boost/spirit/home/x3/core/detail/parse_into_container.hpp:187:20: note: in instantiation of function template
specialization 'boost::spirit::x3::detail::parse_into_container_base_impl<boost::spirit::x3::attr_parser<bool>
>::call_synthesize<__gnu_cxx::__normal_iterator<char *, std::basic_string<char> >, boost::spirit::x3::context<boost::spirit::x3::skipper_tag, const
boost::spirit::x3::char_class<boost::spirit::char_encoding::ascii, boost::spirit::x3::space_tag>, boost::spirit::x3::unused_type>,
std::vector<sql::ast::sql_stmt, std::allocator<sql::ast::sql_stmt> >, std::vector<sql::ast::sql_stmt, std::allocator<sql::ast::sql_stmt> > >' requested
here
return call_synthesize(parser, first, last, context, rcontext, attr);
^
/libs/boost_1_59_0/boost/spirit/home/x3/core/detail/parse_into_container.hpp:196:20: note: in instantiation of function template
specialization 'boost::spirit::x3::detail::parse_into_container_base_impl<boost::spirit::x3::attr_parser<bool>
>::call_synthesize_dispatch_by_seq<__gnu_cxx::__normal_iterator<char *, std::basic_string<char> >,
boost::spirit::x3::context<boost::spirit::x3::skipper_tag, const boost::spirit::x3::char_class<boost::spirit::char_encoding::ascii,
boost::spirit::x3::space_tag>, boost::spirit::x3::unused_type>, std::vector<sql::ast::sql_stmt, std::allocator<sql::ast::sql_stmt> >,
std::vector<sql::ast::sql_stmt, std::allocator<sql::ast::sql_stmt> > >' requested here
return call_synthesize_dispatch_by_seq(parser, first, last, context, rcontext, attr
^
/libs/boost_1_59_0/boost/spirit/home/x3/core/detail/parse_into_container.hpp:218:20: note: (skipping 12 contexts in backtrace; use
-ftemplate-backtrace-limit=0 to see all)
return call(parser, first, last, context, rcontext, attr
^
min/minast5.cpp:124:9: note: in instantiation of function template specialization
'boost::spirit::x3::rule_definition<sql::parser::sql_stmt_list_class,
boost::spirit::x3::list<boost::spirit::x3::sequence<boost::spirit::x3::attr_parser<bool>, boost::spirit::x3::attr_parser<bool> >,
boost::spirit::x3::literal_char<boost::spirit::char_encoding::standard, boost::spirit::x3::unused_type> >, std::vector<sql::ast::sql_stmt,
std::allocator<sql::ast::sql_stmt> >, false>::parse<__gnu_cxx::__normal_iterator<char *, std::basic_string<char> >,
boost::spirit::x3::context<boost::spirit::x3::skipper_tag, const boost::spirit::x3::char_class<boost::spirit::char_encoding::ascii,
boost::spirit::x3::space_tag>, boost::spirit::x3::unused_type>, std::vector<sql::ast::sql_stmt, std::allocator<sql::ast::sql_stmt> > >' requested here
BOOST_SPIRIT_DEFINE(select_stmt, explain_clause, sql_stmt, sql_stmt_list);
^
/libs/boost_1_59_0/boost/spirit/home/x3/nonterminal/rule.hpp:170:5: note: expanded from macro 'BOOST_SPIRIT_DEFINE'
BOOST_SPIRIT_DEFINE_, _, BOOST_PP_VARIADIC_TO_SEQ(__VA_ARGS__)) \
^
/libs/boost_1_59_0/boost/preprocessor/seq/for_each.hpp:29:88: note: expanded from macro 'BOOST_PP_SEQ_FOR_EACH'
# define BOOST_PP_SEQ_FOR_EACH(macro, data, seq) BOOST_PP_SEQ_FOR_EACH_DETAIL_CHECK(macro, data, seq)
^
/libs/boost_1_59_0/boost/preprocessor/seq/for_each.hpp:45:4: note: expanded from macro 'BOOST_PP_SEQ_FOR_EACH_DETAIL_CHECK'
(macro, data, seq) \
^
note: (skipping 20 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
/libs/boost_1_59_0/boost/preprocessor/seq/for_each.hpp:78:76: note: expanded from macro 'BOOST_PP_SEQ_FOR_EACH_M_IM'
# define BOOST_PP_SEQ_FOR_EACH_M_IM(r, im) BOOST_PP_SEQ_FOR_EACH_M_I(r, im)
^
/libs/boost_1_59_0/boost/preprocessor/seq/for_each.hpp:83:61: note: expanded from macro 'BOOST_PP_SEQ_FOR_EACH_M_I'
# define BOOST_PP_SEQ_FOR_EACH_M_I(r, macro, data, seq, sz) macro(r, data, BOOST_PP_SEQ_HEAD(seq))
^
/libs/boost_1_59_0/boost/spirit/home/x3/nonterminal/rule.hpp:165:21: note: expanded from macro 'BOOST_SPIRIT_DEFINE_'
return def_.parse(first, last, context, unused, attr); \
^
/libs/boost_1_59_0/boost/spirit/home/x3/nonterminal/rule.hpp:116:20: note: in instantiation of function template specialization
'sql::parser::parse_rule<__gnu_cxx::__normal_iterator<char *, std::basic_string<char> >, boost::spirit::x3::context<boost::spirit::x3::skipper_tag,
const boost::spirit::x3::char_class<boost::spirit::char_encoding::ascii, boost::spirit::x3::space_tag>, boost::spirit::x3::unused_type>,
std::vector<sql::ast::sql_stmt, std::allocator<sql::ast::sql_stmt> > >' requested here
return parse_rule(*this, first, last, context, attr);
^
/libs/boost_1_59_0/boost/spirit/home/x3/core/parse.hpp:114:31: note: in instantiation of function template specialization
'boost::spirit::x3::rule<sql::parser::sql_stmt_list_class, std::vector<sql::ast::sql_stmt, std::allocator<sql::ast::sql_stmt> >,
false>::parse<__gnu_cxx::__normal_iterator<char *, std::basic_string<char> >, boost::spirit::x3::context<boost::spirit::x3::skipper_tag, const
boost::spirit::x3::char_class<boost::spirit::char_encoding::ascii, boost::spirit::x3::space_tag>, boost::spirit::x3::unused_type>,
std::vector<sql::ast::sql_stmt, std::allocator<sql::ast::sql_stmt> > >' requested here
bool r = as_parser(p).parse(first, last, skipper_ctx, unused, attr);
^
/libs/boost_1_59_0/boost/spirit/home/x3/core/parse.hpp:131:16: note: in instantiation of function template specialization
'boost::spirit::x3::phrase_parse_main<__gnu_cxx::__normal_iterator<char *, std::basic_string<char> >,
boost::spirit::x3::rule<sql::parser::sql_stmt_list_class, std::vector<sql::ast::sql_stmt, std::allocator<sql::ast::sql_stmt> >, false>,
boost::spirit::x3::char_class<boost::spirit::char_encoding::ascii, boost::spirit::x3::space_tag>, std::vector<sql::ast::sql_stmt,
std::allocator<sql::ast::sql_stmt> > >' requested here
return phrase_parse_main(first, last, p, s, attr, post_skip);
^
min/minast5.cpp:147:13: note: in instantiation of function template specialization
'boost::spirit::x3::phrase_parse<__gnu_cxx::__normal_iterator<char *, std::basic_string<char> >,
boost::spirit::x3::rule<sql::parser::sql_stmt_list_class, std::vector<sql::ast::sql_stmt, std::allocator<sql::ast::sql_stmt> >, false>,
boost::spirit::x3::char_class<boost::spirit::char_encoding::ascii, boost::spirit::x3::space_tag>, std::vector<sql::ast::sql_stmt,
std::allocator<sql::ast::sql_stmt> > >' requested here
if (phrase_parse(iter, end, sql_stmt_list, space, ast)) {
^
/libs/boost_1_59_0/boost/spirit/home/x3/support/traits/move_to.hpp:48:9: note: candidate function [with Source = const bool, Dest =
sql::ast::sql_stmt] not viable: no known conversion from 'typename attribute_category<sql_stmt>::type'
(aka 'boost::spirit::x3::traits::tuple_attribute') to 'boost::spirit::x3::traits::unused_attribute' for 3rd argument
move_to(Source&&, Dest&, unused_attribute) {}
^
/libs/boost_1_59_0/boost/spirit/home/x3/support/traits/move_to.hpp:66:9: note: candidate function [with Source = const bool, Dest =
sql::ast::sql_stmt] not viable: no known conversion from 'typename attribute_category<sql_stmt>::type'
(aka 'boost::spirit::x3::traits::tuple_attribute') to 'boost::spirit::x3::traits::plain_attribute' for 3rd argument
move_to(Source&& src, Dest& dest, plain_attribute)
^
/libs/boost_1_59_0/boost/spirit/home/x3/support/traits/move_to.hpp:142:9: note: candidate function [with Source = const bool, Dest
= sql::ast::sql_stmt] not viable: no known conversion from 'typename attribute_category<sql_stmt>::type'
(aka 'boost::spirit::x3::traits::tuple_attribute') to 'boost::spirit::x3::traits::variant_attribute' for 3rd argument
move_to(Source&& src, Dest& dest, variant_attribute tag)
^
/libs/boost_1_59_0/boost/spirit/home/x3/support/traits/move_to.hpp:77:35: note: candidate template ignored: disabled by 'enable_if'
[with Source = const bool, Dest = sql::ast::sql_stmt]
inline typename enable_if<is_container<Source>>::type
^
/libs/boost_1_59_0/boost/spirit/home/x3/support/traits/move_to.hpp:85:13: note: candidate template ignored: disabled by 'enable_if'
[with Source = const bool, Dest = sql::ast::sql_stmt]
mpl::and_<
^
/libs/boost_1_59_0/boost/spirit/home/x3/support/traits/move_to.hpp:96:13: note: candidate template ignored: disabled by 'enable_if'
[with Source = const bool, Dest = sql::ast::sql_stmt]
is_size_one_sequence<Dest>
^
/libs/boost_1_59_0/boost/spirit/home/x3/support/traits/move_to.hpp:105:9: note: candidate function template not viable: requires 4
arguments, but 3 were provided
move_to(Source&& src, Dest& dest, variant_attribute, mpl::false_)
^
/libs/boost_1_59_0/boost/spirit/home/x3/support/traits/move_to.hpp:135:9: note: candidate function template not viable: requires 4
arguments, but 3 were provided
move_to(Source&& src, Dest& dest, variant_attribute, mpl::true_)
^
/libs/boost_1_59_0/boost/spirit/home/x3/support/traits/move_to.hpp:149:9: note: candidate function template not viable: requires 4
arguments, but 3 were provided
move_to(Iterator, Iterator, unused_type, unused_attribute) {}
^
/libs/boost_1_59_0/boost/spirit/home/x3/support/traits/move_to.hpp:153:9: note: candidate function template not viable: requires 4
arguments, but 3 were provided
move_to(Iterator first, Iterator last, Dest& dest, container_attribute)
^
/libs/boost_1_59_0/boost/spirit/home/x3/support/traits/move_to.hpp:163:9: note: candidate function template not viable: requires 4
arguments, but 3 were provided
move_to(Iterator first, Iterator last, boost::iterator_range<Iterator>& rng, container_attribute)
^
1 error generated.
CMakeFiles/minast5.dir/build.make:62: recipe for target 'CMakeFiles/minast5.dir/min/minast5.cpp.o' failed
make[2]: *** [CMakeFiles/minast5.dir/min/minast5.cpp.o] Error 1
CMakeFiles/Makefile2:252: recipe for target 'CMakeFiles/minast5.dir/all' failed
make[1]: *** [CMakeFiles/minast5.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2
In file included from libs/boost_1_59_0/boost/smart_ptr/shared_ptr.hpp:28:0,
from libs/boost_1_59_0/boost/shared_ptr.hpp:17,
from libs/boost_1_59_0/boost/spirit/home/x3/string/symbols.hpp:28,
from libs/boost_1_59_0/boost/spirit/home/x3/string.hpp:11,
from libs/boost_1_59_0/boost/spirit/home/x3.hpp:21,
from min/minast5.cpp:9:
libs/boost_1_59_0/boost/smart_ptr/detail/shared_count.hpp:396:33: warning: ‘template<class> class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]
explicit shared_count( std::auto_ptr<Y> & r ): pi_( new sp_counted_impl_p<Y>( r.get() ) )
^
In file included from /usr/include/c++/5.2.0/memory:81:0,
from libs/boost_1_59_0/boost/move/algorithm.hpp:32,
from libs/boost_1_59_0/boost/move/move.hpp:32,
from libs/boost_1_59_0/boost/variant/detail/move.hpp:28,
from libs/boost_1_59_0/boost/variant/detail/initializer.hpp:23,
from libs/boost_1_59_0/boost/variant/variant.hpp:30,
from libs/boost_1_59_0/boost/variant.hpp:17,
from libs/boost_1_59_0/boost/spirit/home/x3/support/traits/is_variant.hpp:11,
from libs/boost_1_59_0/boost/spirit/home/x3/support/traits/attribute_category.hpp:17,
from libs/boost_1_59_0/boost/spirit/home/x3/support/traits/move_to.hpp:12,
from libs/boost_1_59_0/boost/spirit/home/x3/auxiliary/any_parser.hpp:17,
from libs/boost_1_59_0/boost/spirit/home/x3/auxiliary.hpp:11,
from libs/boost_1_59_0/boost/spirit/home/x3.hpp:14,
from min/minast5.cpp:9:
/usr/include/c++/5.2.0/bits/unique_ptr.h:49:28: note: declared here
template<typename> class auto_ptr;
^
In file included from libs/boost_1_59_0/boost/shared_ptr.hpp:17:0,
from libs/boost_1_59_0/boost/spirit/home/x3/string/symbols.hpp:28,
from libs/boost_1_59_0/boost/spirit/home/x3/string.hpp:11,
from libs/boost_1_59_0/boost/spirit/home/x3.hpp:21,
from min/minast5.cpp:9:
libs/boost_1_59_0/boost/smart_ptr/shared_ptr.hpp:249:65: warning: ‘template<class> class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]
template< class T, class R > struct sp_enable_if_auto_ptr< std::auto_ptr< T >, R >
^
In file included from /usr/include/c++/5.2.0/memory:81:0,
from libs/boost_1_59_0/boost/move/algorithm.hpp:32,
from libs/boost_1_59_0/boost/move/move.hpp:32,
from libs/boost_1_59_0/boost/variant/detail/move.hpp:28,
from libs/boost_1_59_0/boost/variant/detail/initializer.hpp:23,
from libs/boost_1_59_0/boost/variant/variant.hpp:30,
from libs/boost_1_59_0/boost/variant.hpp:17,
from libs/boost_1_59_0/boost/spirit/home/x3/support/traits/is_variant.hpp:11,
from libs/boost_1_59_0/boost/spirit/home/x3/support/traits/attribute_category.hpp:17,
from libs/boost_1_59_0/boost/spirit/home/x3/support/traits/move_to.hpp:12,
from libs/boost_1_59_0/boost/spirit/home/x3/auxiliary/any_parser.hpp:17,
from libs/boost_1_59_0/boost/spirit/home/x3/auxiliary.hpp:11,
from libs/boost_1_59_0/boost/spirit/home/x3.hpp:14,
from min/minast5.cpp:9:
/usr/include/c++/5.2.0/bits/unique_ptr.h:49:28: note: declared here
template<typename> class auto_ptr;
^
In file included from libs/boost_1_59_0/boost/shared_ptr.hpp:17:0,
from libs/boost_1_59_0/boost/spirit/home/x3/string/symbols.hpp:28,
from libs/boost_1_59_0/boost/spirit/home/x3/string.hpp:11,
from libs/boost_1_59_0/boost/spirit/home/x3.hpp:21,
from min/minast5.cpp:9:
libs/boost_1_59_0/boost/smart_ptr/shared_ptr.hpp:448:31: warning: ‘template<class> class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]
explicit shared_ptr( std::auto_ptr<Y> & r ): px(r.get()), pn()
^
In file included from /usr/include/c++/5.2.0/memory:81:0,
from libs/boost_1_59_0/boost/move/algorithm.hpp:32,
from libs/boost_1_59_0/boost/move/move.hpp:32,
from libs/boost_1_59_0/boost/variant/detail/move.hpp:28,
from libs/boost_1_59_0/boost/variant/detail/initializer.hpp:23,
from libs/boost_1_59_0/boost/variant/variant.hpp:30,
from libs/boost_1_59_0/boost/variant.hpp:17,
from libs/boost_1_59_0/boost/spirit/home/x3/support/traits/is_variant.hpp:11,
from libs/boost_1_59_0/boost/spirit/home/x3/support/traits/attribute_category.hpp:17,
from libs/boost_1_59_0/boost/spirit/home/x3/support/traits/move_to.hpp:12,
from libs/boost_1_59_0/boost/spirit/home/x3/auxiliary/any_parser.hpp:17,
from libs/boost_1_59_0/boost/spirit/home/x3/auxiliary.hpp:11,
from libs/boost_1_59_0/boost/spirit/home/x3.hpp:14,
from min/minast5.cpp:9:
/usr/include/c++/5.2.0/bits/unique_ptr.h:49:28: note: declared here
template<typename> class auto_ptr;
^
In file included from libs/boost_1_59_0/boost/shared_ptr.hpp:17:0,
from libs/boost_1_59_0/boost/spirit/home/x3/string/symbols.hpp:28,
from libs/boost_1_59_0/boost/spirit/home/x3/string.hpp:11,
from libs/boost_1_59_0/boost/spirit/home/x3.hpp:21,
from min/minast5.cpp:9:
libs/boost_1_59_0/boost/smart_ptr/shared_ptr.hpp:461:22: warning: ‘template<class> class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]
shared_ptr( std::auto_ptr<Y> && r ): px(r.get()), pn()
^
In file included from /usr/include/c++/5.2.0/memory:81:0,
from libs/boost_1_59_0/boost/move/algorithm.hpp:32,
from libs/boost_1_59_0/boost/move/move.hpp:32,
from libs/boost_1_59_0/boost/variant/detail/move.hpp:28,
from libs/boost_1_59_0/boost/variant/detail/initializer.hpp:23,
from libs/boost_1_59_0/boost/variant/variant.hpp:30,
from libs/boost_1_59_0/boost/variant.hpp:17,
from libs/boost_1_59_0/boost/spirit/home/x3/support/traits/is_variant.hpp:11,
from libs/boost_1_59_0/boost/spirit/home/x3/support/traits/attribute_category.hpp:17,
from libs/boost_1_59_0/boost/spirit/home/x3/support/traits/move_to.hpp:12,
from libs/boost_1_59_0/boost/spirit/home/x3/auxiliary/any_parser.hpp:17,
from libs/boost_1_59_0/boost/spirit/home/x3/auxiliary.hpp:11,
from libs/boost_1_59_0/boost/spirit/home/x3.hpp:14,
from min/minast5.cpp:9:
/usr/include/c++/5.2.0/bits/unique_ptr.h:49:28: note: declared here
template<typename> class auto_ptr;
^
In file included from libs/boost_1_59_0/boost/shared_ptr.hpp:17:0,
from libs/boost_1_59_0/boost/spirit/home/x3/string/symbols.hpp:28,
from libs/boost_1_59_0/boost/spirit/home/x3/string.hpp:11,
from libs/boost_1_59_0/boost/spirit/home/x3.hpp:21,
from min/minast5.cpp:9:
libs/boost_1_59_0/boost/smart_ptr/shared_ptr.hpp:538:34: warning: ‘template<class> class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]
shared_ptr & operator=( std::auto_ptr<Y> & r )
^
In file included from /usr/include/c++/5.2.0/memory:81:0,
from libs/boost_1_59_0/boost/move/algorithm.hpp:32,
from libs/boost_1_59_0/boost/move/move.hpp:32,
from libs/boost_1_59_0/boost/variant/detail/move.hpp:28,
from libs/boost_1_59_0/boost/variant/detail/initializer.hpp:23,
from libs/boost_1_59_0/boost/variant/variant.hpp:30,
from libs/boost_1_59_0/boost/variant.hpp:17,
from libs/boost_1_59_0/boost/spirit/home/x3/support/traits/is_variant.hpp:11,
from libs/boost_1_59_0/boost/spirit/home/x3/support/traits/attribute_category.hpp:17,
from libs/boost_1_59_0/boost/spirit/home/x3/support/traits/move_to.hpp:12,
from libs/boost_1_59_0/boost/spirit/home/x3/auxiliary/any_parser.hpp:17,
from libs/boost_1_59_0/boost/spirit/home/x3/auxiliary.hpp:11,
from libs/boost_1_59_0/boost/spirit/home/x3.hpp:14,
from min/minast5.cpp:9:
/usr/include/c++/5.2.0/bits/unique_ptr.h:49:28: note: declared here
template<typename> class auto_ptr;
^
In file included from libs/boost_1_59_0/boost/shared_ptr.hpp:17:0,
from libs/boost_1_59_0/boost/spirit/home/x3/string/symbols.hpp:28,
from libs/boost_1_59_0/boost/spirit/home/x3/string.hpp:11,
from libs/boost_1_59_0/boost/spirit/home/x3.hpp:21,
from min/minast5.cpp:9:
libs/boost_1_59_0/boost/smart_ptr/shared_ptr.hpp:547:34: warning: ‘template<class> class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]
shared_ptr & operator=( std::auto_ptr<Y> && r )
^
In file included from /usr/include/c++/5.2.0/memory:81:0,
from libs/boost_1_59_0/boost/move/algorithm.hpp:32,
from libs/boost_1_59_0/boost/move/move.hpp:32,
from libs/boost_1_59_0/boost/variant/detail/move.hpp:28,
from libs/boost_1_59_0/boost/variant/detail/initializer.hpp:23,
from libs/boost_1_59_0/boost/variant/variant.hpp:30,
from libs/boost_1_59_0/boost/variant.hpp:17,
from libs/boost_1_59_0/boost/spirit/home/x3/support/traits/is_variant.hpp:11,
from libs/boost_1_59_0/boost/spirit/home/x3/support/traits/attribute_category.hpp:17,
from libs/boost_1_59_0/boost/spirit/home/x3/support/traits/move_to.hpp:12,
from libs/boost_1_59_0/boost/spirit/home/x3/auxiliary/any_parser.hpp:17,
from libs/boost_1_59_0/boost/spirit/home/x3/auxiliary.hpp:11,
from libs/boost_1_59_0/boost/spirit/home/x3.hpp:14,
from min/minast5.cpp:9:
/usr/include/c++/5.2.0/bits/unique_ptr.h:49:28: note: declared here
template<typename> class auto_ptr;
^
In file included from libs/boost_1_59_0/boost/shared_ptr.hpp:17:0,
from libs/boost_1_59_0/boost/spirit/home/x3/string/symbols.hpp:28,
from libs/boost_1_59_0/boost/spirit/home/x3/string.hpp:11,
from libs/boost_1_59_0/boost/spirit/home/x3.hpp:21,
from min/minast5.cpp:9:
libs/boost_1_59_0/boost/smart_ptr/shared_ptr.hpp: In member function ‘boost::shared_ptr<T>& boost::shared_ptr<T>::operator=(std::auto_ptr<_Up>&&)’:
libs/boost_1_59_0/boost/smart_ptr/shared_ptr.hpp:549:38: warning: ‘template<class> class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]
this_type( static_cast< std::auto_ptr<Y> && >( r ) ).swap( *this );
^
In file included from /usr/include/c++/5.2.0/memory:81:0,
from libs/boost_1_59_0/boost/move/algorithm.hpp:32,
from libs/boost_1_59_0/boost/move/move.hpp:32,
from libs/boost_1_59_0/boost/variant/detail/move.hpp:28,
from libs/boost_1_59_0/boost/variant/detail/initializer.hpp:23,
from libs/boost_1_59_0/boost/variant/variant.hpp:30,
from libs/boost_1_59_0/boost/variant.hpp:17,
from libs/boost_1_59_0/boost/spirit/home/x3/support/traits/is_variant.hpp:11,
from libs/boost_1_59_0/boost/spirit/home/x3/support/traits/attribute_category.hpp:17,
from libs/boost_1_59_0/boost/spirit/home/x3/support/traits/move_to.hpp:12,
from libs/boost_1_59_0/boost/spirit/home/x3/auxiliary/any_parser.hpp:17,
from libs/boost_1_59_0/boost/spirit/home/x3/auxiliary.hpp:11,
from libs/boost_1_59_0/boost/spirit/home/x3.hpp:14,
from min/minast5.cpp:9:
/usr/include/c++/5.2.0/bits/unique_ptr.h:49:28: note: declared here
template<typename> class auto_ptr;
^
In file included from libs/boost_1_59_0/boost/spirit/home/x3/auxiliary/any_parser.hpp:17:0,
from libs/boost_1_59_0/boost/spirit/home/x3/auxiliary.hpp:11,
from libs/boost_1_59_0/boost/spirit/home/x3.hpp:14,
from min/minast5.cpp:9:
libs/boost_1_59_0/boost/spirit/home/x3/support/traits/move_to.hpp: In instantiation of ‘void boost::spirit::x3::traits::move_to(Source&&, Dest&) [with Source = const bool&; Dest = sql::ast::sql_stmt]’:
libs/boost_1_59_0/boost/spirit/home/x3/auxiliary/attr.hpp:47:28: required from ‘bool boost::spirit::x3::attr_parser<Value>::parse(Iterator&, const Iterator&, const Context&, RuleContext&, Attribute&) const [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Context = boost::spirit::x3::context<boost::spirit::x3::skipper_tag, const boost::spirit::x3::char_class<boost::spirit::char_encoding::ascii, boost::spirit::x3::space_tag>, boost::spirit::x3::unused_type>; RuleContext = std::vector<sql::ast::sql_stmt>; Attribute = sql::ast::sql_stmt; Value = bool]’
libs/boost_1_59_0/boost/spirit/home/x3/core/detail/parse_into_container.hpp:101:17: required from ‘static bool boost::spirit::x3::detail::parse_into_container_base_impl<Parser>::call_synthesize_x(const Parser&, Iterator&, const Iterator&, const Context&, RContext&, Attribute&, mpl_::false_) [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Context = boost::spirit::x3::context<boost::spirit::x3::skipper_tag, const boost::spirit::x3::char_class<boost::spirit::char_encoding::ascii, boost::spirit::x3::space_tag>, boost::spirit::x3::unused_type>; RContext = std::vector<sql::ast::sql_stmt>; Attribute = std::vector<sql::ast::sql_stmt>; Parser = boost::spirit::x3::attr_parser<bool>; mpl_::false_ = mpl_::bool_<false>]’
libs/boost_1_59_0/boost/spirit/home/x3/core/detail/parse_into_container.hpp:132:37: required from ‘static bool boost::spirit::x3::detail::parse_into_container_base_impl<Parser>::call_synthesize(const Parser&, Iterator&, const Iterator&, const Context&, RContext&, Attribute&) [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Context = boost::spirit::x3::context<boost::spirit::x3::skipper_tag, const boost::spirit::x3::char_class<boost::spirit::char_encoding::ascii, boost::spirit::x3::space_tag>, boost::spirit::x3::unused_type>; RContext = std::vector<sql::ast::sql_stmt>; Attribute = std::vector<sql::ast::sql_stmt>; Parser = boost::spirit::x3::attr_parser<bool>]’
libs/boost_1_59_0/boost/spirit/home/x3/core/detail/parse_into_container.hpp:187:35: required from ‘static bool boost::spirit::x3::detail::parse_into_container_base_impl<Parser>::call_synthesize_dispatch_by_seq(const Parser&, Iterator&, const Iterator&, const Context&, RContext&, Attribute&, mpl_::false_) [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Context = boost::spirit::x3::context<boost::spirit::x3::skipper_tag, const boost::spirit::x3::char_class<boost::spirit::char_encoding::ascii, boost::spirit::x3::space_tag>, boost::spirit::x3::unused_type>; RContext = std::vector<sql::ast::sql_stmt>; Attribute = std::vector<sql::ast::sql_stmt>; Parser = boost::spirit::x3::attr_parser<bool>; mpl_::false_ = mpl_::bool_<false>]’
libs/boost_1_59_0/boost/spirit/home/x3/core/detail/parse_into_container.hpp:196:51: required from ‘static bool boost::spirit::x3::detail::parse_into_container_base_impl<Parser>::call(const Parser&, Iterator&, const Iterator&, const Context&, RContext&, Attribute&, mpl_::true_) [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Context = boost::spirit::x3::context<boost::spirit::x3::skipper_tag, const boost::spirit::x3::char_class<boost::spirit::char_encoding::ascii, boost::spirit::x3::space_tag>, boost::spirit::x3::unused_type>; RContext = std::vector<sql::ast::sql_stmt>; Attribute = std::vector<sql::ast::sql_stmt>; Parser = boost::spirit::x3::attr_parser<bool>; mpl_::true_ = mpl_::bool_<true>]’
libs/boost_1_59_0/boost/spirit/home/x3/core/detail/parse_into_container.hpp:218:24: [ skipping 11 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
libs/boost_1_59_0/boost/spirit/home/x3/nonterminal/rule.hpp:64:39: required from ‘bool boost::spirit::x3::rule_definition<ID, RHS, Attribute, force_attribute_>::parse(Iterator&, const Iterator&, const Context&, boost::spirit::x3::unused_type, Attribute_&) const [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Context = boost::spirit::x3::context<boost::spirit::x3::skipper_tag, const boost::spirit::x3::char_class<boost::spirit::char_encoding::ascii, boost::spirit::x3::space_tag>, boost::spirit::x3::unused_type>; Attribute_ = std::vector<sql::ast::sql_stmt>; ID = sql::parser::sql_stmt_list_class; RHS = boost::spirit::x3::list<boost::spirit::x3::sequence<boost::spirit::x3::attr_parser<bool>, boost::spirit::x3::attr_parser<bool> >, boost::spirit::x3::literal_char<boost::spirit::char_encoding::standard, boost::spirit::x3::unused_type> >; Attribute = std::vector<sql::ast::sql_stmt>; bool force_attribute_ = false]’
min/minast5.cpp:124:9: required from ‘bool sql::parser::parse_rule(boost::spirit::x3::rule<sql::parser::sql_stmt_list_class, std::vector<sql::ast::sql_stmt> >, Iterator&, const Iterator&, const Context&, Attribute&) [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Context = boost::spirit::x3::context<boost::spirit::x3::skipper_tag, const boost::spirit::x3::char_class<boost::spirit::char_encoding::ascii, boost::spirit::x3::space_tag>, boost::spirit::x3::unused_type>; Attribute = std::vector<sql::ast::sql_stmt>]’
libs/boost_1_59_0/boost/spirit/home/x3/nonterminal/rule.hpp:116:30: required from ‘bool boost::spirit::x3::rule<ID, Attribute, force_attribute>::parse(Iterator&, const Iterator&, const Context&, boost::spirit::x3::unused_type, Attribute_&) const [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Context = boost::spirit::x3::context<boost::spirit::x3::skipper_tag, const boost::spirit::x3::char_class<boost::spirit::char_encoding::ascii, boost::spirit::x3::space_tag>, boost::spirit::x3::unused_type>; Attribute_ = std::vector<sql::ast::sql_stmt>; ID = sql::parser::sql_stmt_list_class; Attribute = std::vector<sql::ast::sql_stmt>; bool force_attribute_ = false]’
libs/boost_1_59_0/boost/spirit/home/x3/core/parse.hpp:114:75: required from ‘bool boost::spirit::x3::phrase_parse_main(Iterator&, Iterator, const Parser&, const Skipper&, Attribute&, boost::spirit::x3::skip_flag) [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Parser = boost::spirit::x3::rule<sql::parser::sql_stmt_list_class, std::vector<sql::ast::sql_stmt> >; Skipper = boost::spirit::x3::char_class<boost::spirit::char_encoding::ascii, boost::spirit::x3::space_tag>; Attribute = std::vector<sql::ast::sql_stmt>]’
libs/boost_1_59_0/boost/spirit/home/x3/core/parse.hpp:131:33: required from ‘bool boost::spirit::x3::phrase_parse(Iterator&, Iterator, const Parser&, const Skipper&, Attribute&, boost::spirit::x3::skip_flag) [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Parser = boost::spirit::x3::rule<sql::parser::sql_stmt_list_class, std::vector<sql::ast::sql_stmt> >; Skipper = boost::spirit::x3::char_class<boost::spirit::char_encoding::ascii, boost::spirit::x3::space_tag>; Attribute = std::vector<sql::ast::sql_stmt>]’
min/minast5.cpp:147:62: required from here
libs/boost_1_59_0/boost/spirit/home/x3/support/traits/move_to.hpp:173:24: error: no matching function for call to ‘move_to(std::remove_reference<const bool&>::type, sql::ast::sql_stmt&, boost::mpl::identity<boost::spirit::x3::traits::tuple_attribute>::type)’
detail::move_to(std::move(src), dest
^
libs/boost_1_59_0/boost/spirit/home/x3/support/traits/move_to.hpp:48:9: note: candidate: template<class Source, class Dest> void boost::spirit::x3::traits::detail::move_to(Source&&, Dest&, boost::spirit::x3::traits::unused_attribute)
move_to(Source&&, Dest&, unused_attribute) {}
^
libs/boost_1_59_0/boost/spirit/home/x3/support/traits/move_to.hpp:48:9: note: template argument deduction/substitution failed:
libs/boost_1_59_0/boost/spirit/home/x3/support/traits/move_to.hpp:173:24: note: cannot convert ‘boost::mpl::identity<boost::spirit::x3::traits::tuple_attribute>::type()’ (type ‘boost::mpl::identity<boost::spirit::x3::traits::tuple_attribute>::type {aka boost::spirit::x3::traits::tuple_attribute}’) to type ‘boost::spirit::x3::traits::unused_attribute’
detail::move_to(std::move(src), dest
^
libs/boost_1_59_0/boost/spirit/home/x3/support/traits/move_to.hpp:66:9: note: candidate: template<class Source, class Dest> void boost::spirit::x3::traits::detail::move_to(Source&&, Dest&, boost::spirit::x3::traits::plain_attribute)
move_to(Source&& src, Dest& dest, plain_attribute)
^
libs/boost_1_59_0/boost/spirit/home/x3/support/traits/move_to.hpp:66:9: note: template argument deduction/substitution failed:
libs/boost_1_59_0/boost/spirit/home/x3/support/traits/move_to.hpp:173:24: note: cannot convert ‘boost::mpl::identity<boost::spirit::x3::traits::tuple_attribute>::type()’ (type ‘boost::mpl::identity<boost::spirit::x3::traits::tuple_attribute>::type {aka boost::spirit::x3::traits::tuple_attribute}’) to type ‘boost::spirit::x3::traits::plain_attribute’
detail::move_to(std::move(src), dest
^
libs/boost_1_59_0/boost/spirit/home/x3/support/traits/move_to.hpp:78:9: note: candidate: template<class Source, class Dest> typename boost::enable_if<boost::spirit::x3::traits::is_container<T> >::type boost::spirit::x3::traits::detail::move_to(Source&&, Dest&, boost::spirit::x3::traits::container_attribute)
move_to(Source&& src, Dest& dest, container_attribute)
^
libs/boost_1_59_0/boost/spirit/home/x3/support/traits/move_to.hpp:78:9: note: template argument deduction/substitution failed:
libs/boost_1_59_0/boost/spirit/home/x3/support/traits/move_to.hpp:173:24: note: cannot convert ‘boost::mpl::identity<boost::spirit::x3::traits::tuple_attribute>::type()’ (type ‘boost::mpl::identity<boost::spirit::x3::traits::tuple_attribute>::type {aka boost::spirit::x3::traits::tuple_attribute}’) to type ‘boost::spirit::x3::traits::container_attribute’
detail::move_to(std::move(src), dest
^
libs/boost_1_59_0/boost/spirit/home/x3/support/traits/move_to.hpp:89:9: note: candidate: template<class Source, class Dest> typename boost::enable_if<boost::mpl::and_<boost::spirit::x3::traits::is_same_size_sequence<Dest, Source>, boost::mpl::not_<boost::spirit::x3::traits::is_size_one_sequence<Dest> > > >::type boost::spirit::x3::traits::detail::move_to(Source&&, Dest&, boost::spirit::x3::traits::tuple_attribute)
move_to(Source&& src, Dest& dest, tuple_attribute)
^
libs/boost_1_59_0/boost/spirit/home/x3/support/traits/move_to.hpp:89:9: note: template argument deduction/substitution failed:
libs/boost_1_59_0/boost/spirit/home/x3/support/traits/move_to.hpp: In substitution of ‘template<class Source, class Dest> typename boost::enable_if<boost::mpl::and_<boost::spirit::x3::traits::is_same_size_sequence<Dest, Source>, boost::mpl::not_<boost::spirit::x3::traits::is_size_one_sequence<Dest> > > >::type boost::spirit::x3::traits::detail::move_to(Source&&, Dest&, boost::spirit::x3::traits::tuple_attribute) [with Source = const bool; Dest = sql::ast::sql_stmt]’:
libs/boost_1_59_0/boost/spirit/home/x3/support/traits/move_to.hpp:173:24: required from ‘void boost::spirit::x3::traits::move_to(Source&&, Dest&) [with Source = const bool&; Dest = sql::ast::sql_stmt]’
libs/boost_1_59_0/boost/spirit/home/x3/auxiliary/attr.hpp:47:28: required from ‘bool boost::spirit::x3::attr_parser<Value>::parse(Iterator&, const Iterator&, const Context&, RuleContext&, Attribute&) const [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Context = boost::spirit::x3::context<boost::spirit::x3::skipper_tag, const boost::spirit::x3::char_class<boost::spirit::char_encoding::ascii, boost::spirit::x3::space_tag>, boost::spirit::x3::unused_type>; RuleContext = std::vector<sql::ast::sql_stmt>; Attribute = sql::ast::sql_stmt; Value = bool]’
libs/boost_1_59_0/boost/spirit/home/x3/core/detail/parse_into_container.hpp:101:17: required from ‘static bool boost::spirit::x3::detail::parse_into_container_base_impl<Parser>::call_synthesize_x(const Parser&, Iterator&, const Iterator&, const Context&, RContext&, Attribute&, mpl_::false_) [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Context = boost::spirit::x3::context<boost::spirit::x3::skipper_tag, const boost::spirit::x3::char_class<boost::spirit::char_encoding::ascii, boost::spirit::x3::space_tag>, boost::spirit::x3::unused_type>; RContext = std::vector<sql::ast::sql_stmt>; Attribute = std::vector<sql::ast::sql_stmt>; Parser = boost::spirit::x3::attr_parser<bool>; mpl_::false_ = mpl_::bool_<false>]’
libs/boost_1_59_0/boost/spirit/home/x3/core/detail/parse_into_container.hpp:132:37: required from ‘static bool boost::spirit::x3::detail::parse_into_container_base_impl<Parser>::call_synthesize(const Parser&, Iterator&, const Iterator&, const Context&, RContext&, Attribute&) [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Context = boost::spirit::x3::context<boost::spirit::x3::skipper_tag, const boost::spirit::x3::char_class<boost::spirit::char_encoding::ascii, boost::spirit::x3::space_tag>, boost::spirit::x3::unused_type>; RContext = std::vector<sql::ast::sql_stmt>; Attribute = std::vector<sql::ast::sql_stmt>; Parser = boost::spirit::x3::attr_parser<bool>]’
libs/boost_1_59_0/boost/spirit/home/x3/core/detail/parse_into_container.hpp:187:35: required from ‘static bool boost::spirit::x3::detail::parse_into_container_base_impl<Parser>::call_synthesize_dispatch_by_seq(const Parser&, Iterator&, const Iterator&, const Context&, RContext&, Attribute&, mpl_::false_) [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Context = boost::spirit::x3::context<boost::spirit::x3::skipper_tag, const boost::spirit::x3::char_class<boost::spirit::char_encoding::ascii, boost::spirit::x3::space_tag>, boost::spirit::x3::unused_type>; RContext = std::vector<sql::ast::sql_stmt>; Attribute = std::vector<sql::ast::sql_stmt>; Parser = boost::spirit::x3::attr_parser<bool>; mpl_::false_ = mpl_::bool_<false>]’
libs/boost_1_59_0/boost/spirit/home/x3/core/detail/parse_into_container.hpp:196:51: [ skipping 12 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
libs/boost_1_59_0/boost/spirit/home/x3/nonterminal/rule.hpp:64:39: required from ‘bool boost::spirit::x3::rule_definition<ID, RHS, Attribute, force_attribute_>::parse(Iterator&, const Iterator&, const Context&, boost::spirit::x3::unused_type, Attribute_&) const [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Context = boost::spirit::x3::context<boost::spirit::x3::skipper_tag, const boost::spirit::x3::char_class<boost::spirit::char_encoding::ascii, boost::spirit::x3::space_tag>, boost::spirit::x3::unused_type>; Attribute_ = std::vector<sql::ast::sql_stmt>; ID = sql::parser::sql_stmt_list_class; RHS = boost::spirit::x3::list<boost::spirit::x3::sequence<boost::spirit::x3::attr_parser<bool>, boost::spirit::x3::attr_parser<bool> >, boost::spirit::x3::literal_char<boost::spirit::char_encoding::standard, boost::spirit::x3::unused_type> >; Attribute = std::vector<sql::ast::sql_stmt>; bool force_attribute_ = false]’
min/minast5.cpp:124:9: required from ‘bool sql::parser::parse_rule(boost::spirit::x3::rule<sql::parser::sql_stmt_list_class, std::vector<sql::ast::sql_stmt> >, Iterator&, const Iterator&, const Context&, Attribute&) [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Context = boost::spirit::x3::context<boost::spirit::x3::skipper_tag, const boost::spirit::x3::char_class<boost::spirit::char_encoding::ascii, boost::spirit::x3::space_tag>, boost::spirit::x3::unused_type>; Attribute = std::vector<sql::ast::sql_stmt>]’
libs/boost_1_59_0/boost/spirit/home/x3/nonterminal/rule.hpp:116:30: required from ‘bool boost::spirit::x3::rule<ID, Attribute, force_attribute>::parse(Iterator&, const Iterator&, const Context&, boost::spirit::x3::unused_type, Attribute_&) const [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Context = boost::spirit::x3::context<boost::spirit::x3::skipper_tag, const boost::spirit::x3::char_class<boost::spirit::char_encoding::ascii, boost::spirit::x3::space_tag>, boost::spirit::x3::unused_type>; Attribute_ = std::vector<sql::ast::sql_stmt>; ID = sql::parser::sql_stmt_list_class; Attribute = std::vector<sql::ast::sql_stmt>; bool force_attribute_ = false]’
libs/boost_1_59_0/boost/spirit/home/x3/core/parse.hpp:114:75: required from ‘bool boost::spirit::x3::phrase_parse_main(Iterator&, Iterator, const Parser&, const Skipper&, Attribute&, boost::spirit::x3::skip_flag) [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Parser = boost::spirit::x3::rule<sql::parser::sql_stmt_list_class, std::vector<sql::ast::sql_stmt> >; Skipper = boost::spirit::x3::char_class<boost::spirit::char_encoding::ascii, boost::spirit::x3::space_tag>; Attribute = std::vector<sql::ast::sql_stmt>]’
libs/boost_1_59_0/boost/spirit/home/x3/core/parse.hpp:131:33: required from ‘bool boost::spirit::x3::phrase_parse(Iterator&, Iterator, const Parser&, const Skipper&, Attribute&, boost::spirit::x3::skip_flag) [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Parser = boost::spirit::x3::rule<sql::parser::sql_stmt_list_class, std::vector<sql::ast::sql_stmt> >; Skipper = boost::spirit::x3::char_class<boost::spirit::char_encoding::ascii, boost::spirit::x3::space_tag>; Attribute = std::vector<sql::ast::sql_stmt>]’
min/minast5.cpp:147:62: required from here
libs/boost_1_59_0/boost/spirit/home/x3/support/traits/move_to.hpp:89:9: error: no type named ‘type’ in ‘struct boost::enable_if<boost::mpl::and_<boost::spirit::x3::traits::is_same_size_sequence<sql::ast::sql_stmt, const bool>, boost::mpl::not_<boost::spirit::x3::traits::is_size_one_sequence<sql::ast::sql_stmt> >, mpl_::bool_<true>, mpl_::bool_<true>, mpl_::bool_<true> >, void>’
libs/boost_1_59_0/boost/spirit/home/x3/support/traits/move_to.hpp: In instantiation of ‘void boost::spirit::x3::traits::move_to(Source&&, Dest&) [with Source = const bool&; Dest = sql::ast::sql_stmt]’:
libs/boost_1_59_0/boost/spirit/home/x3/auxiliary/attr.hpp:47:28: required from ‘bool boost::spirit::x3::attr_parser<Value>::parse(Iterator&, const Iterator&, const Context&, RuleContext&, Attribute&) const [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Context = boost::spirit::x3::context<boost::spirit::x3::skipper_tag, const boost::spirit::x3::char_class<boost::spirit::char_encoding::ascii, boost::spirit::x3::space_tag>, boost::spirit::x3::unused_type>; RuleContext = std::vector<sql::ast::sql_stmt>; Attribute = sql::ast::sql_stmt; Value = bool]’
libs/boost_1_59_0/boost/spirit/home/x3/core/detail/parse_into_container.hpp:101:17: required from ‘static bool boost::spirit::x3::detail::parse_into_container_base_impl<Parser>::call_synthesize_x(const Parser&, Iterator&, const Iterator&, const Context&, RContext&, Attribute&, mpl_::false_) [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Context = boost::spirit::x3::context<boost::spirit::x3::skipper_tag, const boost::spirit::x3::char_class<boost::spirit::char_encoding::ascii, boost::spirit::x3::space_tag>, boost::spirit::x3::unused_type>; RContext = std::vector<sql::ast::sql_stmt>; Attribute = std::vector<sql::ast::sql_stmt>; Parser = boost::spirit::x3::attr_parser<bool>; mpl_::false_ = mpl_::bool_<false>]’
libs/boost_1_59_0/boost/spirit/home/x3/core/detail/parse_into_container.hpp:132:37: required from ‘static bool boost::spirit::x3::detail::parse_into_container_base_impl<Parser>::call_synthesize(const Parser&, Iterator&, const Iterator&, const Context&, RContext&, Attribute&) [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Context = boost::spirit::x3::context<boost::spirit::x3::skipper_tag, const boost::spirit::x3::char_class<boost::spirit::char_encoding::ascii, boost::spirit::x3::space_tag>, boost::spirit::x3::unused_type>; RContext = std::vector<sql::ast::sql_stmt>; Attribute = std::vector<sql::ast::sql_stmt>; Parser = boost::spirit::x3::attr_parser<bool>]’
libs/boost_1_59_0/boost/spirit/home/x3/core/detail/parse_into_container.hpp:187:35: required from ‘static bool boost::spirit::x3::detail::parse_into_container_base_impl<Parser>::call_synthesize_dispatch_by_seq(const Parser&, Iterator&, const Iterator&, const Context&, RContext&, Attribute&, mpl_::false_) [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Context = boost::spirit::x3::context<boost::spirit::x3::skipper_tag, const boost::spirit::x3::char_class<boost::spirit::char_encoding::ascii, boost::spirit::x3::space_tag>, boost::spirit::x3::unused_type>; RContext = std::vector<sql::ast::sql_stmt>; Attribute = std::vector<sql::ast::sql_stmt>; Parser = boost::spirit::x3::attr_parser<bool>; mpl_::false_ = mpl_::bool_<false>]’
libs/boost_1_59_0/boost/spirit/home/x3/core/detail/parse_into_container.hpp:196:51: required from ‘static bool boost::spirit::x3::detail::parse_into_container_base_impl<Parser>::call(const Parser&, Iterator&, const Iterator&, const Context&, RContext&, Attribute&, mpl_::true_) [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Context = boost::spirit::x3::context<boost::spirit::x3::skipper_tag, const boost::spirit::x3::char_class<boost::spirit::char_encoding::ascii, boost::spirit::x3::space_tag>, boost::spirit::x3::unused_type>; RContext = std::vector<sql::ast::sql_stmt>; Attribute = std::vector<sql::ast::sql_stmt>; Parser = boost::spirit::x3::attr_parser<bool>; mpl_::true_ = mpl_::bool_<true>]’
libs/boost_1_59_0/boost/spirit/home/x3/core/detail/parse_into_container.hpp:218:24: [ skipping 11 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
libs/boost_1_59_0/boost/spirit/home/x3/nonterminal/rule.hpp:64:39: required from ‘bool boost::spirit::x3::rule_definition<ID, RHS, Attribute, force_attribute_>::parse(Iterator&, const Iterator&, const Context&, boost::spirit::x3::unused_type, Attribute_&) const [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Context = boost::spirit::x3::context<boost::spirit::x3::skipper_tag, const boost::spirit::x3::char_class<boost::spirit::char_encoding::ascii, boost::spirit::x3::space_tag>, boost::spirit::x3::unused_type>; Attribute_ = std::vector<sql::ast::sql_stmt>; ID = sql::parser::sql_stmt_list_class; RHS = boost::spirit::x3::list<boost::spirit::x3::sequence<boost::spirit::x3::attr_parser<bool>, boost::spirit::x3::attr_parser<bool> >, boost::spirit::x3::literal_char<boost::spirit::char_encoding::standard, boost::spirit::x3::unused_type> >; Attribute = std::vector<sql::ast::sql_stmt>; bool force_attribute_ = false]’
min/minast5.cpp:124:9: required from ‘bool sql::parser::parse_rule(boost::spirit::x3::rule<sql::parser::sql_stmt_list_class, std::vector<sql::ast::sql_stmt> >, Iterator&, const Iterator&, const Context&, Attribute&) [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Context = boost::spirit::x3::context<boost::spirit::x3::skipper_tag, const boost::spirit::x3::char_class<boost::spirit::char_encoding::ascii, boost::spirit::x3::space_tag>, boost::spirit::x3::unused_type>; Attribute = std::vector<sql::ast::sql_stmt>]’
libs/boost_1_59_0/boost/spirit/home/x3/nonterminal/rule.hpp:116:30: required from ‘bool boost::spirit::x3::rule<ID, Attribute, force_attribute>::parse(Iterator&, const Iterator&, const Context&, boost::spirit::x3::unused_type, Attribute_&) const [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Context = boost::spirit::x3::context<boost::spirit::x3::skipper_tag, const boost::spirit::x3::char_class<boost::spirit::char_encoding::ascii, boost::spirit::x3::space_tag>, boost::spirit::x3::unused_type>; Attribute_ = std::vector<sql::ast::sql_stmt>; ID = sql::parser::sql_stmt_list_class; Attribute = std::vector<sql::ast::sql_stmt>; bool force_attribute_ = false]’
libs/boost_1_59_0/boost/spirit/home/x3/core/parse.hpp:114:75: required from ‘bool boost::spirit::x3::phrase_parse_main(Iterator&, Iterator, const Parser&, const Skipper&, Attribute&, boost::spirit::x3::skip_flag) [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Parser = boost::spirit::x3::rule<sql::parser::sql_stmt_list_class, std::vector<sql::ast::sql_stmt> >; Skipper = boost::spirit::x3::char_class<boost::spirit::char_encoding::ascii, boost::spirit::x3::space_tag>; Attribute = std::vector<sql::ast::sql_stmt>]’
libs/boost_1_59_0/boost/spirit/home/x3/core/parse.hpp:131:33: required from ‘bool boost::spirit::x3::phrase_parse(Iterator&, Iterator, const Parser&, const Skipper&, Attribute&, boost::spirit::x3::skip_flag) [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Parser = boost::spirit::x3::rule<sql::parser::sql_stmt_list_class, std::vector<sql::ast::sql_stmt> >; Skipper = boost::spirit::x3::char_class<boost::spirit::char_encoding::ascii, boost::spirit::x3::space_tag>; Attribute = std::vector<sql::ast::sql_stmt>]’
min/minast5.cpp:147:62: required from here
libs/boost_1_59_0/boost/spirit/home/x3/support/traits/move_to.hpp:98:9: note: candidate: template<class Source, class Dest> typename boost::enable_if<boost::spirit::x3::traits::is_size_one_sequence<Dest> >::type boost::spirit::x3::traits::detail::move_to(Source&&, Dest&, boost::spirit::x3::traits::tuple_attribute)
move_to(Source&& src, Dest& dest, tuple_attribute)
^
libs/boost_1_59_0/boost/spirit/home/x3/support/traits/move_to.hpp:98:9: note: template argument deduction/substitution failed:
libs/boost_1_59_0/boost/spirit/home/x3/support/traits/move_to.hpp: In substitution of ‘template<class Source, class Dest> typename boost::enable_if<boost::spirit::x3::traits::is_size_one_sequence<Dest> >::type boost::spirit::x3::traits::detail::move_to(Source&&, Dest&, boost::spirit::x3::traits::tuple_attribute) [with Source = const bool; Dest = sql::ast::sql_stmt]’:
libs/boost_1_59_0/boost/spirit/home/x3/support/traits/move_to.hpp:173:24: required from ‘void boost::spirit::x3::traits::move_to(Source&&, Dest&) [with Source = const bool&; Dest = sql::ast::sql_stmt]’
libs/boost_1_59_0/boost/spirit/home/x3/auxiliary/attr.hpp:47:28: required from ‘bool boost::spirit::x3::attr_parser<Value>::parse(Iterator&, const Iterator&, const Context&, RuleContext&, Attribute&) const [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Context = boost::spirit::x3::context<boost::spirit::x3::skipper_tag, const boost::spirit::x3::char_class<boost::spirit::char_encoding::ascii, boost::spirit::x3::space_tag>, boost::spirit::x3::unused_type>; RuleContext = std::vector<sql::ast::sql_stmt>; Attribute = sql::ast::sql_stmt; Value = bool]’
libs/boost_1_59_0/boost/spirit/home/x3/core/detail/parse_into_container.hpp:101:17: required from ‘static bool boost::spirit::x3::detail::parse_into_container_base_impl<Parser>::call_synthesize_x(const Parser&, Iterator&, const Iterator&, const Context&, RContext&, Attribute&, mpl_::false_) [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Context = boost::spirit::x3::context<boost::spirit::x3::skipper_tag, const boost::spirit::x3::char_class<boost::spirit::char_encoding::ascii, boost::spirit::x3::space_tag>, boost::spirit::x3::unused_type>; RContext = std::vector<sql::ast::sql_stmt>; Attribute = std::vector<sql::ast::sql_stmt>; Parser = boost::spirit::x3::attr_parser<bool>; mpl_::false_ = mpl_::bool_<false>]’
libs/boost_1_59_0/boost/spirit/home/x3/core/detail/parse_into_container.hpp:132:37: required from ‘static bool boost::spirit::x3::detail::parse_into_container_base_impl<Parser>::call_synthesize(const Parser&, Iterator&, const Iterator&, const Context&, RContext&, Attribute&) [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Context = boost::spirit::x3::context<boost::spirit::x3::skipper_tag, const boost::spirit::x3::char_class<boost::spirit::char_encoding::ascii, boost::spirit::x3::space_tag>, boost::spirit::x3::unused_type>; RContext = std::vector<sql::ast::sql_stmt>; Attribute = std::vector<sql::ast::sql_stmt>; Parser = boost::spirit::x3::attr_parser<bool>]’
libs/boost_1_59_0/boost/spirit/home/x3/core/detail/parse_into_container.hpp:187:35: required from ‘static bool boost::spirit::x3::detail::parse_into_container_base_impl<Parser>::call_synthesize_dispatch_by_seq(const Parser&, Iterator&, const Iterator&, const Context&, RContext&, Attribute&, mpl_::false_) [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Context = boost::spirit::x3::context<boost::spirit::x3::skipper_tag, const boost::spirit::x3::char_class<boost::spirit::char_encoding::ascii, boost::spirit::x3::space_tag>, boost::spirit::x3::unused_type>; RContext = std::vector<sql::ast::sql_stmt>; Attribute = std::vector<sql::ast::sql_stmt>; Parser = boost::spirit::x3::attr_parser<bool>; mpl_::false_ = mpl_::bool_<false>]’
libs/boost_1_59_0/boost/spirit/home/x3/core/detail/parse_into_container.hpp:196:51: [ skipping 12 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
libs/boost_1_59_0/boost/spirit/home/x3/nonterminal/rule.hpp:64:39: required from ‘bool boost::spirit::x3::rule_definition<ID, RHS, Attribute, force_attribute_>::parse(Iterator&, const Iterator&, const Context&, boost::spirit::x3::unused_type, Attribute_&) const [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Context = boost::spirit::x3::context<boost::spirit::x3::skipper_tag, const boost::spirit::x3::char_class<boost::spirit::char_encoding::ascii, boost::spirit::x3::space_tag>, boost::spirit::x3::unused_type>; Attribute_ = std::vector<sql::ast::sql_stmt>; ID = sql::parser::sql_stmt_list_class; RHS = boost::spirit::x3::list<boost::spirit::x3::sequence<boost::spirit::x3::attr_parser<bool>, boost::spirit::x3::attr_parser<bool> >, boost::spirit::x3::literal_char<boost::spirit::char_encoding::standard, boost::spirit::x3::unused_type> >; Attribute = std::vector<sql::ast::sql_stmt>; bool force_attribute_ = false]’
min/minast5.cpp:124:9: required from ‘bool sql::parser::parse_rule(boost::spirit::x3::rule<sql::parser::sql_stmt_list_class, std::vector<sql::ast::sql_stmt> >, Iterator&, const Iterator&, const Context&, Attribute&) [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Context = boost::spirit::x3::context<boost::spirit::x3::skipper_tag, const boost::spirit::x3::char_class<boost::spirit::char_encoding::ascii, boost::spirit::x3::space_tag>, boost::spirit::x3::unused_type>; Attribute = std::vector<sql::ast::sql_stmt>]’
libs/boost_1_59_0/boost/spirit/home/x3/nonterminal/rule.hpp:116:30: required from ‘bool boost::spirit::x3::rule<ID, Attribute, force_attribute>::parse(Iterator&, const Iterator&, const Context&, boost::spirit::x3::unused_type, Attribute_&) const [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Context = boost::spirit::x3::context<boost::spirit::x3::skipper_tag, const boost::spirit::x3::char_class<boost::spirit::char_encoding::ascii, boost::spirit::x3::space_tag>, boost::spirit::x3::unused_type>; Attribute_ = std::vector<sql::ast::sql_stmt>; ID = sql::parser::sql_stmt_list_class; Attribute = std::vector<sql::ast::sql_stmt>; bool force_attribute_ = false]’
libs/boost_1_59_0/boost/spirit/home/x3/core/parse.hpp:114:75: required from ‘bool boost::spirit::x3::phrase_parse_main(Iterator&, Iterator, const Parser&, const Skipper&, Attribute&, boost::spirit::x3::skip_flag) [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Parser = boost::spirit::x3::rule<sql::parser::sql_stmt_list_class, std::vector<sql::ast::sql_stmt> >; Skipper = boost::spirit::x3::char_class<boost::spirit::char_encoding::ascii, boost::spirit::x3::space_tag>; Attribute = std::vector<sql::ast::sql_stmt>]’
libs/boost_1_59_0/boost/spirit/home/x3/core/parse.hpp:131:33: required from ‘bool boost::spirit::x3::phrase_parse(Iterator&, Iterator, const Parser&, const Skipper&, Attribute&, boost::spirit::x3::skip_flag) [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Parser = boost::spirit::x3::rule<sql::parser::sql_stmt_list_class, std::vector<sql::ast::sql_stmt> >; Skipper = boost::spirit::x3::char_class<boost::spirit::char_encoding::ascii, boost::spirit::x3::space_tag>; Attribute = std::vector<sql::ast::sql_stmt>]’
min/minast5.cpp:147:62: required from here
libs/boost_1_59_0/boost/spirit/home/x3/support/traits/move_to.hpp:98:9: error: no type named ‘type’ in ‘struct boost::enable_if<boost::spirit::x3::traits::is_size_one_sequence<sql::ast::sql_stmt>, void>’
libs/boost_1_59_0/boost/spirit/home/x3/support/traits/move_to.hpp: In instantiation of ‘void boost::spirit::x3::traits::move_to(Source&&, Dest&) [with Source = const bool&; Dest = sql::ast::sql_stmt]’:
libs/boost_1_59_0/boost/spirit/home/x3/auxiliary/attr.hpp:47:28: required from ‘bool boost::spirit::x3::attr_parser<Value>::parse(Iterator&, const Iterator&, const Context&, RuleContext&, Attribute&) const [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Context = boost::spirit::x3::context<boost::spirit::x3::skipper_tag, const boost::spirit::x3::char_class<boost::spirit::char_encoding::ascii, boost::spirit::x3::space_tag>, boost::spirit::x3::unused_type>; RuleContext = std::vector<sql::ast::sql_stmt>; Attribute = sql::ast::sql_stmt; Value = bool]’
libs/boost_1_59_0/boost/spirit/home/x3/core/detail/parse_into_container.hpp:101:17: required from ‘static bool boost::spirit::x3::detail::parse_into_container_base_impl<Parser>::call_synthesize_x(const Parser&, Iterator&, const Iterator&, const Context&, RContext&, Attribute&, mpl_::false_) [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Context = boost::spirit::x3::context<boost::spirit::x3::skipper_tag, const boost::spirit::x3::char_class<boost::spirit::char_encoding::ascii, boost::spirit::x3::space_tag>, boost::spirit::x3::unused_type>; RContext = std::vector<sql::ast::sql_stmt>; Attribute = std::vector<sql::ast::sql_stmt>; Parser = boost::spirit::x3::attr_parser<bool>; mpl_::false_ = mpl_::bool_<false>]’
libs/boost_1_59_0/boost/spirit/home/x3/core/detail/parse_into_container.hpp:132:37: required from ‘static bool boost::spirit::x3::detail::parse_into_container_base_impl<Parser>::call_synthesize(const Parser&, Iterator&, const Iterator&, const Context&, RContext&, Attribute&) [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Context = boost::spirit::x3::context<boost::spirit::x3::skipper_tag, const boost::spirit::x3::char_class<boost::spirit::char_encoding::ascii, boost::spirit::x3::space_tag>, boost::spirit::x3::unused_type>; RContext = std::vector<sql::ast::sql_stmt>; Attribute = std::vector<sql::ast::sql_stmt>; Parser = boost::spirit::x3::attr_parser<bool>]’
libs/boost_1_59_0/boost/spirit/home/x3/core/detail/parse_into_container.hpp:187:35: required from ‘static bool boost::spirit::x3::detail::parse_into_container_base_impl<Parser>::call_synthesize_dispatch_by_seq(const Parser&, Iterator&, const Iterator&, const Context&, RContext&, Attribute&, mpl_::false_) [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Context = boost::spirit::x3::context<boost::spirit::x3::skipper_tag, const boost::spirit::x3::char_class<boost::spirit::char_encoding::ascii, boost::spirit::x3::space_tag>, boost::spirit::x3::unused_type>; RContext = std::vector<sql::ast::sql_stmt>; Attribute = std::vector<sql::ast::sql_stmt>; Parser = boost::spirit::x3::attr_parser<bool>; mpl_::false_ = mpl_::bool_<false>]’
libs/boost_1_59_0/boost/spirit/home/x3/core/detail/parse_into_container.hpp:196:51: required from ‘static bool boost::spirit::x3::detail::parse_into_container_base_impl<Parser>::call(const Parser&, Iterator&, const Iterator&, const Context&, RContext&, Attribute&, mpl_::true_) [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Context = boost::spirit::x3::context<boost::spirit::x3::skipper_tag, const boost::spirit::x3::char_class<boost::spirit::char_encoding::ascii, boost::spirit::x3::space_tag>, boost::spirit::x3::unused_type>; RContext = std::vector<sql::ast::sql_stmt>; Attribute = std::vector<sql::ast::sql_stmt>; Parser = boost::spirit::x3::attr_parser<bool>; mpl_::true_ = mpl_::bool_<true>]’
libs/boost_1_59_0/boost/spirit/home/x3/core/detail/parse_into_container.hpp:218:24: [ skipping 11 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
libs/boost_1_59_0/boost/spirit/home/x3/nonterminal/rule.hpp:64:39: required from ‘bool boost::spirit::x3::rule_definition<ID, RHS, Attribute, force_attribute_>::parse(Iterator&, const Iterator&, const Context&, boost::spirit::x3::unused_type, Attribute_&) const [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Context = boost::spirit::x3::context<boost::spirit::x3::skipper_tag, const boost::spirit::x3::char_class<boost::spirit::char_encoding::ascii, boost::spirit::x3::space_tag>, boost::spirit::x3::unused_type>; Attribute_ = std::vector<sql::ast::sql_stmt>; ID = sql::parser::sql_stmt_list_class; RHS = boost::spirit::x3::list<boost::spirit::x3::sequence<boost::spirit::x3::attr_parser<bool>, boost::spirit::x3::attr_parser<bool> >, boost::spirit::x3::literal_char<boost::spirit::char_encoding::standard, boost::spirit::x3::unused_type> >; Attribute = std::vector<sql::ast::sql_stmt>; bool force_attribute_ = false]’
min/minast5.cpp:124:9: required from ‘bool sql::parser::parse_rule(boost::spirit::x3::rule<sql::parser::sql_stmt_list_class, std::vector<sql::ast::sql_stmt> >, Iterator&, const Iterator&, const Context&, Attribute&) [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Context = boost::spirit::x3::context<boost::spirit::x3::skipper_tag, const boost::spirit::x3::char_class<boost::spirit::char_encoding::ascii, boost::spirit::x3::space_tag>, boost::spirit::x3::unused_type>; Attribute = std::vector<sql::ast::sql_stmt>]’
libs/boost_1_59_0/boost/spirit/home/x3/nonterminal/rule.hpp:116:30: required from ‘bool boost::spirit::x3::rule<ID, Attribute, force_attribute>::parse(Iterator&, const Iterator&, const Context&, boost::spirit::x3::unused_type, Attribute_&) const [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Context = boost::spirit::x3::context<boost::spirit::x3::skipper_tag, const boost::spirit::x3::char_class<boost::spirit::char_encoding::ascii, boost::spirit::x3::space_tag>, boost::spirit::x3::unused_type>; Attribute_ = std::vector<sql::ast::sql_stmt>; ID = sql::parser::sql_stmt_list_class; Attribute = std::vector<sql::ast::sql_stmt>; bool force_attribute_ = false]’
libs/boost_1_59_0/boost/spirit/home/x3/core/parse.hpp:114:75: required from ‘bool boost::spirit::x3::phrase_parse_main(Iterator&, Iterator, const Parser&, const Skipper&, Attribute&, boost::spirit::x3::skip_flag) [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Parser = boost::spirit::x3::rule<sql::parser::sql_stmt_list_class, std::vector<sql::ast::sql_stmt> >; Skipper = boost::spirit::x3::char_class<boost::spirit::char_encoding::ascii, boost::spirit::x3::space_tag>; Attribute = std::vector<sql::ast::sql_stmt>]’
libs/boost_1_59_0/boost/spirit/home/x3/core/parse.hpp:131:33: required from ‘bool boost::spirit::x3::phrase_parse(Iterator&, Iterator, const Parser&, const Skipper&, Attribute&, boost::spirit::x3::skip_flag) [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Parser = boost::spirit::x3::rule<sql::parser::sql_stmt_list_class, std::vector<sql::ast::sql_stmt> >; Skipper = boost::spirit::x3::char_class<boost::spirit::char_encoding::ascii, boost::spirit::x3::space_tag>; Attribute = std::vector<sql::ast::sql_stmt>]’
min/minast5.cpp:147:62: required from here
libs/boost_1_59_0/boost/spirit/home/x3/support/traits/move_to.hpp:105:9: note: candidate: template<class Source, class Dest> void boost::spirit::x3::traits::detail::move_to(Source&&, Dest&, boost::spirit::x3::traits::variant_attribute, mpl_::false_)
move_to(Source&& src, Dest& dest, variant_attribute, mpl::false_)
^
libs/boost_1_59_0/boost/spirit/home/x3/support/traits/move_to.hpp:105:9: note: template argument deduction/substitution failed:
libs/boost_1_59_0/boost/spirit/home/x3/support/traits/move_to.hpp:173:24: note: cannot convert ‘boost::mpl::identity<boost::spirit::x3::traits::tuple_attribute>::type()’ (type ‘boost::mpl::identity<boost::spirit::x3::traits::tuple_attribute>::type {aka boost::spirit::x3::traits::tuple_attribute}’) to type ‘boost::spirit::x3::traits::variant_attribute’
detail::move_to(std::move(src), dest
^
libs/boost_1_59_0/boost/spirit/home/x3/support/traits/move_to.hpp:135:9: note: candidate: template<class Source, class Dest> void boost::spirit::x3::traits::detail::move_to(Source&&, Dest&, boost::spirit::x3::traits::variant_attribute, mpl_::true_)
move_to(Source&& src, Dest& dest, variant_attribute, mpl::true_)
^
libs/boost_1_59_0/boost/spirit/home/x3/support/traits/move_to.hpp:135:9: note: template argument deduction/substitution failed:
libs/boost_1_59_0/boost/spirit/home/x3/support/traits/move_to.hpp:173:24: note: cannot convert ‘boost::mpl::identity<boost::spirit::x3::traits::tuple_attribute>::type()’ (type ‘boost::mpl::identity<boost::spirit::x3::traits::tuple_attribute>::type {aka boost::spirit::x3::traits::tuple_attribute}’) to type ‘boost::spirit::x3::traits::variant_attribute’
detail::move_to(std::move(src), dest
^
libs/boost_1_59_0/boost/spirit/home/x3/support/traits/move_to.hpp:142:9: note: candidate: template<class Source, class Dest> void boost::spirit::x3::traits::detail::move_to(Source&&, Dest&, boost::spirit::x3::traits::variant_attribute)
move_to(Source&& src, Dest& dest, variant_attribute tag)
^
libs/boost_1_59_0/boost/spirit/home/x3/support/traits/move_to.hpp:142:9: note: template argument deduction/substitution failed:
libs/boost_1_59_0/boost/spirit/home/x3/support/traits/move_to.hpp:173:24: note: cannot convert ‘boost::mpl::identity<boost::spirit::x3::traits::tuple_attribute>::type()’ (type ‘boost::mpl::identity<boost::spirit::x3::traits::tuple_attribute>::type {aka boost::spirit::x3::traits::tuple_attribute}’) to type ‘boost::spirit::x3::traits::variant_attribute’
detail::move_to(std::move(src), dest
^
libs/boost_1_59_0/boost/spirit/home/x3/support/traits/move_to.hpp:149:9: note: candidate: template<class Iterator> void boost::spirit::x3::traits::detail::move_to(Iterator, Iterator, boost::spirit::x3::unused_type, boost::spirit::x3::traits::unused_attribute)
move_to(Iterator, Iterator, unused_type, unused_attribute) {}
^
libs/boost_1_59_0/boost/spirit/home/x3/support/traits/move_to.hpp:149:9: note: template argument deduction/substitution failed:
libs/boost_1_59_0/boost/spirit/home/x3/support/traits/move_to.hpp:173:24: note: deduced conflicting types for parameter ‘Iterator’ (‘bool’ and ‘sql::ast::sql_stmt’)
detail::move_to(std::move(src), dest
^
libs/boost_1_59_0/boost/spirit/home/x3/support/traits/move_to.hpp:153:9: note: candidate: template<class Iterator, class Dest> void boost::spirit::x3::traits::detail::move_to(Iterator, Iterator, Dest&, boost::spirit::x3::traits::container_attribute)
move_to(Iterator first, Iterator last, Dest& dest, container_attribute)
^
libs/boost_1_59_0/boost/spirit/home/x3/support/traits/move_to.hpp:153:9: note: template argument deduction/substitution failed:
libs/boost_1_59_0/boost/spirit/home/x3/support/traits/move_to.hpp:173:24: note: deduced conflicting types for parameter ‘Iterator’ (‘bool’ and ‘sql::ast::sql_stmt’)
detail::move_to(std::move(src), dest
^
libs/boost_1_59_0/boost/spirit/home/x3/support/traits/move_to.hpp:163:9: note: candidate: template<class Iterator> void boost::spirit::x3::traits::detail::move_to(Iterator, Iterator, boost::iterator_range<IteratorT>&, boost::spirit::x3::traits::container_attribute)
move_to(Iterator first, Iterator last, boost::iterator_range<Iterator>& rng, container_attribute)
^
libs/boost_1_59_0/boost/spirit/home/x3/support/traits/move_to.hpp:163:9: note: template argument deduction/substitution failed:
libs/boost_1_59_0/boost/spirit/home/x3/support/traits/move_to.hpp:173:24: note: deduced conflicting types for parameter ‘Iterator’ (‘bool’ and ‘sql::ast::sql_stmt’)
detail::move_to(std::move(src), dest
^
CMakeFiles/minast5.dir/build.make:62: recipe for target 'CMakeFiles/minast5.dir/min/minast5.cpp.o' failed
make[2]: *** [CMakeFiles/minast5.dir/min/minast5.cpp.o] Error 1
CMakeFiles/Makefile2:252: recipe for target 'CMakeFiles/minast5.dir/all' failed
make[1]: *** [CMakeFiles/minast5.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment