Hi,
I got this error on Linux with the Intel compiler:
PATH/boost/boost_1_58_0/include/boost/core/enable_if.hpp(36): error:
incomplete type is not allowed
struct enable_if : public enable_if_c {};
^
detected during:
instantiation of class "boost::enable_if [with
Cond=boost::mpl::and_, boost::fusion::cons>, expr_node (),
boost::spirit::ascii::space_type,
boost::spirit::unused_type,
boost::spirit::unused_type>>,
boost::phoenix::actor>, 0L>,
boost::phoenix::actor, 0L>,
boost::proto::exprns_::basic_expr, 0L>,
boost::spirit::_val_type, boost::spirit::_1_type>, 4L>>>, 2L>>>,
boost::fusion::nil_>>>,
boost::mpl::not_, boost::fusion::cons>, expr_node (),
boost::spirit::ascii::space_type, boost::spirit::unused_type,
boost::spirit::unused_type>>,
boost::phoenix::actor>, 0L>,
boost::phoenix::actor, 0L>,
boost::proto::exprns_::basic_expr, 0L>,
boost::spirit::_val_type, boost::spirit::_1_type>, 4L>>>, 2L>>>,
boost::fusion::nil_>>,
boost::spirit::qi::literal_char>>, boost::mpl::bool_<true>, boost::mpl::bool_<true>,
boost::mpl::bool_<true>>, T=void]" at line 92 of
"PATH/boost/boost_1_58_0/include/boost/type_traits/is_convertible.hpp"
instantiation of class
"boost::detail::is_convertible_basic_impl [with
From=boost::fusion::cons, boost::fusion::cons>, expr_node (),
boost::spirit::ascii::space_type,
boost::spirit::unused_type,
boost::spirit::unused_type>>,
boost::phoenix::actor>, 0L>,
boost::phoenix::actor, 0L>,
boost::proto::exprns_::basic_expr, 0L>,
boost::spirit::_val_type, boost::spirit::_1_type>, 4L>>>, 2L>>>,
boost::fusion::nil_>>,
To=boost::spirit::qi::literal_char]" at line 357 of
"PATH/boost/boost_1_58_0/include/boost/type_traits/is_convertible.hpp"
instantiation of class
"boost::detail::is_convertible_impl [with
From=boost::fusion::cons, boost::fusion::cons>, expr_node (),
boost::spirit::ascii::space_type, boost::spirit::unused_type,
boost::spirit::unused_type>>,
boost::phoenix::actor>, 0L>,
boost::phoenix::actor, 0L>,
boost::proto::exprns_::basic_expr, 0L>,
boost::spirit::_val_type, boost::spirit::_1_type>, 4L>>>, 2L>>>,
boost::fusion::nil_>>,
To=boost::spirit::qi::literal_char]" at line 437 of
"PATH/boost/boost_1_58_0/include/boost/type_traits/is_convertible.hpp"
instantiation of class
"boost::detail::is_convertible_impl_dispatch [with
From=boost::fusion::cons, boost::fusion::cons>, expr_node (),
boost::spirit::ascii::space_type,
boost::spirit::unused_type,
boost::spirit::unused_type>>,
boost::phoenix::actor>, 0L>,
boost::phoenix::actor, 0L>,
boost::proto::exprns_::basic_expr, 0L>,
boost::spirit::_val_type, boost::spirit::_1_type>, 4L>>>, 2L>>>,
boost::fusion::nil_>>,
To=boost::spirit::qi::literal_char]" at line 482 of
"PATH/boost/boost_1_58_0/include/boost/type_traits/is_convertible.hpp"
instantiation of class "boost::is_convertible
[with From=boost::fusion::cons, boost::fusion::cons>, expr_node (),
boost::spirit::ascii::space_type, boost::spirit::unused_type,
boost::spirit::unused_type>>,
boost::phoenix::actor>, 0L>,
boost::phoenix::actor, 0L>,
boost::proto::exprns_::basic_expr, 0L>,
boost::spirit::_val_type, boost::spirit::_1_type>, 4L>>>, 2L>>>,
boost::fusion::nil_>>,
To=boost::spirit::qi::literal_char]" at line 27 of
"PATH/boost/boost_1_58_0/include/boost/mpl/aux_/nested_type_wknd.hpp"
[ 26 instantiation contexts not shown ]
instantiation of class
"boost::proto::transform::result<Sig> [with
PrimitiveTransform=boost::proto::switch_boost::spirit::qi::domain::cases,
boost::proto::tag_ofboost::proto::_ ()>, X=void,
Sig=boost::spirit::meta_compilerboost::spirit::qi::domain::meta_grammar
(boost::proto::exprns_::expr>, expr_node (),
boost::spirit::ascii::space_type, boost::spirit::unused_type,
boost::spirit::unused_type> &, const
boost::phoenix::actor>, 0L>,
boost::spirit::_1_type>, 2L>> &>, 2L> &, const
boost::proto::exprns_::expr, 0L>,
const boost::proto::exprns_::expr>, expr_node (),
boost::spirit::ascii::space_type, boost::spirit::unused_type,
boost::spirit::unused_type> &, const
boost::phoenix::actor>, 0L>,
boost::phoenix::actor, 0L>,
boost::proto::exprns_::basic_expr, 0L>,
boost::spirit::_val_type, boost::spirit::_1_type>, 4L>>>, 2L>> &>, 2L>
&>, 2L> &>, 1L> &>, 2L>, boost::mpl::void_,
boost::spirit::unused_type)]" at line 206 of
"PATH/boost/boost_1_58_0/include/boost/spirit/home/support/meta_compiler.hpp"
instantiation of class
"boost::spirit::result_of::compile
[with Domain=boost::spirit::qi::domain,
Expr=boost::proto::exprns_::expr>, expr_node (),
boost::spirit::ascii::space_type,
boost::spirit::unused_type, boost::spirit::unused_type> &, const
boost::phoenix::actor>, 0L>,
boost::spirit::_1_type>, 2L>> &>, 2L> &, const
boost::proto::exprns_::expr, 0L>, const
boost::proto::exprns_::expr>, expr_node (),
boost::spirit::ascii::space_type, boost::spirit::unused_type,
boost::spirit::unused_type> &, const
boost::phoenix::actor>, 0L>,
boost::phoenix::actor, 0L>,
boost::proto::exprns_::basic_expr, 0L>,
boost::spirit::_val_type, boost::spirit::_1_type>, 4L>>>, 2L>> &>, 2L>
&>, 2L> &>, 1L> &>, 2L>,
Modifiers=boost::spirit::unused_type,
Enable=void]" at line 184 of
"PATH/boost/boost_1_58_0/include/boost/spirit/home/qi/nonterminal/rule.hpp"
instantiation of "void boost::spirit::qi::rule::define(boost::spirit::qi::rule &, const Expr &, boost::mpl::true_) [with
Iterator=__gnu_cxx::__normal_iterator>, T1=expr_node (),
T2=boost::spirit::ascii::space_type, T3=boost::spirit::unused_type,
T4=boost::spirit::unused_type, Auto=boost::mpl::false_,
Expr=boost::proto::exprns_::expr>, expr_node (),
boost::spirit::ascii::space_type, boost::spirit::unused_type,
boost::spirit::unused_type> &, const
boost::phoenix::actor>, 0L>,
boost::spirit::_1_type>, 2L>> &>, 2L> &, const
boost::proto::exprns_::expr, 0L>, const
boost::proto::exprns_::expr>, expr_node (),
boost::spirit::ascii::space_type, boost::spirit::unused_type,
boost::spirit::unused_type> &, const
boost::phoenix::actor>, 0L>,
boost::phoenix::actor, 0L>,
boost::proto::exprns_::basic_expr, 0L>,
boost::spirit::_val_type, boost::spirit::_1_type>, 4L>>>, 2L>> &>, 2L>
&>, 2L> &>, 1L> &>, 2L>]" at line 221 of
"PATH/boost/boost_1_58_0/include/boost/spirit/home/qi/nonterminal/rule.hpp"
instantiation of "boost::spirit::qi::rule &boost::spirit::qi::rule::operator=(const Expr &) [with
Iterator=__gnu_cxx::__normal_iterator>, T1=expr_node (),
T2=boost::spirit::ascii::space_type, T3=boost::spirit::unused_type,
T4=boost::spirit::unused_type,
Expr=boost::proto::exprns_::expr>, expr_node (),
boost::spirit::ascii::space_type, boost::spirit::unused_type,
boost::spirit::unused_type> &, const
boost::phoenix::actor>, 0L>,
boost::spirit::_1_type>, 2L>> &>, 2L> &, const
boost::proto::exprns_::expr, 0L>,
const boost::proto::exprns_::expr>, expr_node (),
boost::spirit::ascii::space_type, boost::spirit::unused_type,
boost::spirit::unused_type> &, const
boost::phoenix::actor>, 0L>,
boost::phoenix::actor, 0L>,
boost::proto::exprns_::basic_expr, 0L>,
boost::spirit::_val_type, boost::spirit::_1_type>, 4L>>>, 2L>> &>, 2L>
&>, 2L> &>, 1L> &>, 2L>]" at line 82 of "test.cpp"
instantiation of "Grammar<Iterator>::Grammar() [with
Iterator=__gnu_cxx::__normal_iterator>]" at line 92 of "test.cpp"
I can't make sense of this, as it works fine with gcc or Visual Studio.
The original file is far bigger, but this is the smallest grammar I
could make that displays this error...
If someone knows...
Matthieu
--
Information System Engineer, Ph.D.
Blog: http://matt.eifelle.com
LinkedIn: http://www.linkedin.com/in/matthieubrucher
Music band: http://liliejay.com/