In file included from boost/proto/core.hpp:22:0, from boost/proto/proto.hpp:12, from Emotion.hpp:6, from main.cpp:5: boost/proto/matches.hpp: In instantiation of 'boost::proto::detail::matches_&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >&, boost::proto::exprns_::expr, 0l> >, 2l>, boost::proto::control::if_), EmtnTermOrGram(boost::proto::_child_c<0>)>()> >': boost/proto/matches.hpp:935:13: instantiated from 'boost::proto::detail::and_2&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >&, boost::proto::exprns_::expr, 0l> >, 2l>, boost::proto::control::if_), EmtnTermOrGram(boost::proto::_child_c<0>)>()> > >' boost/proto/matches.hpp:994:13: instantiated from 'boost::proto::detail::matches_&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >&, boost::proto::exprns_::expr, 0l> >, 2l>, boost::proto::control::and_ >, boost::proto::control::if_), EmtnTermOrGram(boost::proto::_child_c<0>)>()> > >' boost/proto/matches.hpp:960:13: instantiated from 'boost::proto::detail::or_2&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >&, boost::proto::exprns_::expr, 0l> >, 2l>, boost::proto::when()>, boost::proto::when()> >' boost/proto/matches.hpp:968:13: instantiated from 'boost::proto::detail::or_3&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >&, boost::proto::exprns_::expr, 0l> >, 2l>, boost::proto::when, boost::proto::control::if_()> >, mpl_::int_<1>()>, boost::proto::when()>, boost::proto::when()> >' boost/proto/matches.hpp:968:13: instantiated from 'boost::proto::detail::or_4&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >&, boost::proto::exprns_::expr, 0l> >, 2l>, boost::proto::when, boost::mpl::plus), EmtnTermOrGram(boost::proto::_child_c<1>)>()>, boost::proto::when, boost::proto::control::if_()> >, mpl_::int_<1>()>, boost::proto::when()>, boost::proto::when()> >' boost/proto/matches.hpp:985:13: instantiated from 'boost::proto::detail::matches_&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >&, boost::proto::exprns_::expr, 0l> >, 2l>, boost::proto::control::or_, boost::mpl::plus), EmtnTermOrGram(boost::proto::_child_c<1>)>()>, boost::proto::when, boost::proto::control::if_()> >, mpl_::int_<1>()>, boost::proto::when()>, boost::proto::when()> > >' boost/proto/matches.hpp:985:13: instantiated from 'boost::proto::detail::matches_&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >&, boost::proto::exprns_::expr, 0l> >, 2l>, boost::proto::control::or_ >' boost/proto/matches.hpp:505:13: instantiated from 'boost::proto::result_of::matches&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >&, boost::proto::exprns_::expr, 0l> >, 2l>, EmotionGram>' boost/proto/operators.hpp:77:9: instantiated from 'boost::proto::detail::generate_if_left&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >, boost::proto::exprns_::expr, 0l> >' boost/proto/operators.hpp:115:9: instantiated from 'boost::proto::detail::as_expr_if2&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >, Plus2, void, void>' boost/proto/operators.hpp:154:9: instantiated from 'boost::proto::detail::as_expr_if&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >, Plus2, void, void>' main.cpp:38:86: instantiated from here boost/proto/matches.hpp:391:13: error: invalid use of incomplete type 'struct boost::proto::detail::uncvref > >::type' Arity.hpp:73:9: error: declaration of 'struct boost::proto::detail::uncvref > >::type' In file included from boost/preprocessor/iteration/detail/iter/forward1.hpp:57:0, from boost/proto/matches.hpp:367, from boost/proto/core.hpp:22, from boost/proto/proto.hpp:12, from Emotion.hpp:6, from main.cpp:5: boost/proto/matches.hpp: In instantiation of 'boost::proto::detail::and_2&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >&, boost::proto::exprns_::expr, 0l> >, 2l>, boost::proto::control::if_), EmtnTermOrGram(boost::proto::_child_c<0>)>()> > >': boost/proto/matches.hpp:994:13: instantiated from 'boost::proto::detail::matches_&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >&, boost::proto::exprns_::expr, 0l> >, 2l>, boost::proto::control::and_ >, boost::proto::control::if_), EmtnTermOrGram(boost::proto::_child_c<0>)>()> > >' boost/proto/matches.hpp:960:13: instantiated from 'boost::proto::detail::or_2&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >&, boost::proto::exprns_::expr, 0l> >, 2l>, boost::proto::when()>, boost::proto::when()> >' boost/proto/matches.hpp:968:13: instantiated from 'boost::proto::detail::or_3&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >&, boost::proto::exprns_::expr, 0l> >, 2l>, boost::proto::when, boost::proto::control::if_()> >, mpl_::int_<1>()>, boost::proto::when()>, boost::proto::when()> >' boost/proto/matches.hpp:968:13: instantiated from 'boost::proto::detail::or_4&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >&, boost::proto::exprns_::expr, 0l> >, 2l>, boost::proto::when, boost::mpl::plus), EmtnTermOrGram(boost::proto::_child_c<1>)>()>, boost::proto::when, boost::proto::control::if_()> >, mpl_::int_<1>()>, boost::proto::when()>, boost::proto::when()> >' boost/proto/matches.hpp:985:13: instantiated from 'boost::proto::detail::matches_&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >&, boost::proto::exprns_::expr, 0l> >, 2l>, boost::proto::control::or_, boost::mpl::plus), EmtnTermOrGram(boost::proto::_child_c<1>)>()>, boost::proto::when, boost::proto::control::if_()> >, mpl_::int_<1>()>, boost::proto::when()>, boost::proto::when()> > >' boost/proto/matches.hpp:985:13: instantiated from 'boost::proto::detail::matches_&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >&, boost::proto::exprns_::expr, 0l> >, 2l>, boost::proto::control::or_ >' boost/proto/matches.hpp:505:13: instantiated from 'boost::proto::result_of::matches&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >&, boost::proto::exprns_::expr, 0l> >, 2l>, EmotionGram>' boost/proto/operators.hpp:77:9: instantiated from 'boost::proto::detail::generate_if_left&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >, boost::proto::exprns_::expr, 0l> >' boost/proto/operators.hpp:115:9: instantiated from 'boost::proto::detail::as_expr_if2&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >, Plus2, void, void>' boost/proto/operators.hpp:154:9: instantiated from 'boost::proto::detail::as_expr_if&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >, Plus2, void, void>' main.cpp:38:86: instantiated from here boost/proto/matches.hpp:935:13: error: 'value' is not a member of 'boost::proto::detail::matches_&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >&, boost::proto::exprns_::expr, 0l> >, 2l>, boost::proto::control::if_), EmtnTermOrGram(boost::proto::_child_c<0>)>()> >' boost/proto/matches.hpp: In instantiation of 'boost::proto::detail::or_2&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >&, boost::proto::exprns_::expr, 0l> >, 2l>, boost::proto::when()>, boost::proto::when()> >': boost/proto/matches.hpp:968:13: instantiated from 'boost::proto::detail::or_3&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >&, boost::proto::exprns_::expr, 0l> >, 2l>, boost::proto::when, boost::proto::control::if_()> >, mpl_::int_<1>()>, boost::proto::when()>, boost::proto::when()> >' boost/proto/matches.hpp:968:13: instantiated from 'boost::proto::detail::or_4&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >&, boost::proto::exprns_::expr, 0l> >, 2l>, boost::proto::when, boost::mpl::plus), EmtnTermOrGram(boost::proto::_child_c<1>)>()>, boost::proto::when, boost::proto::control::if_()> >, mpl_::int_<1>()>, boost::proto::when()>, boost::proto::when()> >' boost/proto/matches.hpp:985:13: instantiated from 'boost::proto::detail::matches_&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >&, boost::proto::exprns_::expr, 0l> >, 2l>, boost::proto::control::or_, boost::mpl::plus), EmtnTermOrGram(boost::proto::_child_c<1>)>()>, boost::proto::when, boost::proto::control::if_()> >, mpl_::int_<1>()>, boost::proto::when()>, boost::proto::when()> > >' boost/proto/matches.hpp:985:13: instantiated from 'boost::proto::detail::matches_&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >&, boost::proto::exprns_::expr, 0l> >, 2l>, boost::proto::control::or_ >' boost/proto/matches.hpp:505:13: instantiated from 'boost::proto::result_of::matches&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >&, boost::proto::exprns_::expr, 0l> >, 2l>, EmotionGram>' boost/proto/operators.hpp:77:9: instantiated from 'boost::proto::detail::generate_if_left&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >, boost::proto::exprns_::expr, 0l> >' boost/proto/operators.hpp:115:9: instantiated from 'boost::proto::detail::as_expr_if2&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >, Plus2, void, void>' boost/proto/operators.hpp:154:9: instantiated from 'boost::proto::detail::as_expr_if&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >, Plus2, void, void>' main.cpp:38:86: instantiated from here boost/proto/matches.hpp:960:13: error: 'value' is not a member of 'boost::proto::detail::matches_&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >&, boost::proto::exprns_::expr, 0l> >, 2l>, boost::proto::control::and_ >, boost::proto::control::if_), EmtnTermOrGram(boost::proto::_child_c<0>)>()> > >' In file included from boost/preprocessor/iteration/detail/iter/forward1.hpp:62:0, from boost/proto/matches.hpp:367, from boost/proto/core.hpp:22, from boost/proto/proto.hpp:12, from Emotion.hpp:6, from main.cpp:5: boost/proto/matches.hpp: In instantiation of 'boost::proto::detail::matches_&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >&, boost::proto::exprns_::expr, 0l> >, 2l>, boost::proto::control::or_ >': boost/proto/matches.hpp:505:13: instantiated from 'boost::proto::result_of::matches&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >&, boost::proto::exprns_::expr, 0l> >, 2l>, EmotionGram>' boost/proto/operators.hpp:77:9: instantiated from 'boost::proto::detail::generate_if_left&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >, boost::proto::exprns_::expr, 0l> >' boost/proto/operators.hpp:115:9: instantiated from 'boost::proto::detail::as_expr_if2&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >, Plus2, void, void>' boost/proto/operators.hpp:154:9: instantiated from 'boost::proto::detail::as_expr_if&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >, Plus2, void, void>' main.cpp:38:86: instantiated from here boost/proto/matches.hpp:985:13: error: 'value' is not a member of 'boost::proto::detail::matches_&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >&, boost::proto::exprns_::expr, 0l> >, 2l>, boost::proto::control::or_, boost::mpl::plus), EmtnTermOrGram(boost::proto::_child_c<1>)>()>, boost::proto::when, boost::proto::control::if_()> >, mpl_::int_<1>()>, boost::proto::when()>, boost::proto::when()> > >' In file included from boost/proto/core.hpp:26:0, from boost/proto/proto.hpp:12, from Emotion.hpp:6, from main.cpp:5: boost/proto/operators.hpp: In instantiation of 'boost::proto::detail::generate_if_left&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >, boost::proto::exprns_::expr, 0l> >': boost/proto/operators.hpp:115:9: instantiated from 'boost::proto::detail::as_expr_if2&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >, Plus2, void, void>' boost/proto/operators.hpp:154:9: instantiated from 'boost::proto::detail::as_expr_if&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >, Plus2, void, void>' main.cpp:38:86: instantiated from here boost/proto/operators.hpp:77:9: error: 'value' is not a member of 'boost::proto::result_of::matches&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >&, boost::proto::exprns_::expr, 0l> >, 2l>, EmotionGram>' In file included from boost/proto/core.hpp:22:0, from boost/proto/proto.hpp:12, from Emotion.hpp:6, from main.cpp:5: boost/proto/matches.hpp: In instantiation of 'boost::proto::detail::matches_&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >&, boost::proto::exprns_::expr, 0l> >, 2l>, boost::proto::control::if_), EmtnTermOrGram(boost::proto::_child_c<0>)>()> >': boost/proto/matches.hpp:935:13: instantiated from 'boost::proto::detail::and_2&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >&, boost::proto::exprns_::expr, 0l> >, 2l>, boost::proto::control::if_), EmtnTermOrGram(boost::proto::_child_c<0>)>()> > >' boost/proto/matches.hpp:994:13: instantiated from 'boost::proto::detail::matches_&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >&, boost::proto::exprns_::expr, 0l> >, 2l>, boost::proto::control::and_ >, boost::proto::control::if_), EmtnTermOrGram(boost::proto::_child_c<0>)>()> > >' boost/proto/matches.hpp:960:13: instantiated from 'boost::proto::detail::or_2&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >&, boost::proto::exprns_::expr, 0l> >, 2l>, boost::proto::when()>, boost::proto::when()> >' boost/proto/matches.hpp:968:13: instantiated from 'boost::proto::detail::or_3&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >&, boost::proto::exprns_::expr, 0l> >, 2l>, boost::proto::when, boost::proto::control::if_()> >, mpl_::int_<1>()>, boost::proto::when()>, boost::proto::when()> >' boost/proto/matches.hpp:968:13: instantiated from 'boost::proto::detail::or_4&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >&, boost::proto::exprns_::expr, 0l> >, 2l>, boost::proto::when, boost::mpl::plus), EmtnTermOrGram(boost::proto::_child_c<1>)>()>, boost::proto::when, boost::proto::control::if_()> >, mpl_::int_<1>()>, boost::proto::when()>, boost::proto::when()> >' boost/proto/matches.hpp:985:13: instantiated from 'boost::proto::detail::matches_&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >&, boost::proto::exprns_::expr, 0l> >, 2l>, boost::proto::control::or_, boost::mpl::plus), EmtnTermOrGram(boost::proto::_child_c<1>)>()>, boost::proto::when, boost::proto::control::if_()> >, mpl_::int_<1>()>, boost::proto::when()>, boost::proto::when()> > >' boost/proto/matches.hpp:985:13: instantiated from 'boost::proto::detail::matches_&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >&, boost::proto::exprns_::expr, 0l> >, 2l>, boost::proto::control::or_ >' boost/proto/matches.hpp:505:13: instantiated from 'boost::proto::result_of::matches&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >&, boost::proto::exprns_::expr, 0l> >, 2l>, EmotionGram>' boost/proto/operators.hpp:77:9: instantiated from 'boost::proto::detail::generate_if_left&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >, boost::proto::exprns_::expr, 0l> >' boost/proto/operators.hpp:115:9: instantiated from 'boost::proto::detail::as_expr_if2&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >, const Plus2, void, void>' boost/proto/operators.hpp:154:9: instantiated from 'boost::proto::detail::as_expr_if&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >, const Plus2, void, void>' main.cpp:38:86: instantiated from here boost/proto/matches.hpp:391:13: error: invalid use of incomplete type 'struct boost::proto::detail::uncvref > >::type' Arity.hpp:73:9: error: declaration of 'struct boost::proto::detail::uncvref > >::type' In file included from boost/preprocessor/iteration/detail/iter/forward1.hpp:57:0, from boost/proto/matches.hpp:367, from boost/proto/core.hpp:22, from boost/proto/proto.hpp:12, from Emotion.hpp:6, from main.cpp:5: boost/proto/matches.hpp: In instantiation of 'boost::proto::detail::and_2&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >&, boost::proto::exprns_::expr, 0l> >, 2l>, boost::proto::control::if_), EmtnTermOrGram(boost::proto::_child_c<0>)>()> > >': boost/proto/matches.hpp:994:13: instantiated from 'boost::proto::detail::matches_&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >&, boost::proto::exprns_::expr, 0l> >, 2l>, boost::proto::control::and_ >, boost::proto::control::if_), EmtnTermOrGram(boost::proto::_child_c<0>)>()> > >' boost/proto/matches.hpp:960:13: instantiated from 'boost::proto::detail::or_2&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >&, boost::proto::exprns_::expr, 0l> >, 2l>, boost::proto::when()>, boost::proto::when()> >' boost/proto/matches.hpp:968:13: instantiated from 'boost::proto::detail::or_3&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >&, boost::proto::exprns_::expr, 0l> >, 2l>, boost::proto::when, boost::proto::control::if_()> >, mpl_::int_<1>()>, boost::proto::when()>, boost::proto::when()> >' boost/proto/matches.hpp:968:13: instantiated from 'boost::proto::detail::or_4&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >&, boost::proto::exprns_::expr, 0l> >, 2l>, boost::proto::when, boost::mpl::plus), EmtnTermOrGram(boost::proto::_child_c<1>)>()>, boost::proto::when, boost::proto::control::if_()> >, mpl_::int_<1>()>, boost::proto::when()>, boost::proto::when()> >' boost/proto/matches.hpp:985:13: instantiated from 'boost::proto::detail::matches_&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >&, boost::proto::exprns_::expr, 0l> >, 2l>, boost::proto::control::or_, boost::mpl::plus), EmtnTermOrGram(boost::proto::_child_c<1>)>()>, boost::proto::when, boost::proto::control::if_()> >, mpl_::int_<1>()>, boost::proto::when()>, boost::proto::when()> > >' boost/proto/matches.hpp:985:13: instantiated from 'boost::proto::detail::matches_&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >&, boost::proto::exprns_::expr, 0l> >, 2l>, boost::proto::control::or_ >' boost/proto/matches.hpp:505:13: instantiated from 'boost::proto::result_of::matches&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >&, boost::proto::exprns_::expr, 0l> >, 2l>, EmotionGram>' boost/proto/operators.hpp:77:9: instantiated from 'boost::proto::detail::generate_if_left&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >, boost::proto::exprns_::expr, 0l> >' boost/proto/operators.hpp:115:9: instantiated from 'boost::proto::detail::as_expr_if2&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >, const Plus2, void, void>' boost/proto/operators.hpp:154:9: instantiated from 'boost::proto::detail::as_expr_if&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >, const Plus2, void, void>' main.cpp:38:86: instantiated from here boost/proto/matches.hpp:935:13: error: 'value' is not a member of 'boost::proto::detail::matches_&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >&, boost::proto::exprns_::expr, 0l> >, 2l>, boost::proto::control::if_), EmtnTermOrGram(boost::proto::_child_c<0>)>()> >' boost/proto/matches.hpp: In instantiation of 'boost::proto::detail::or_2&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >&, boost::proto::exprns_::expr, 0l> >, 2l>, boost::proto::when()>, boost::proto::when()> >': boost/proto/matches.hpp:968:13: instantiated from 'boost::proto::detail::or_3&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >&, boost::proto::exprns_::expr, 0l> >, 2l>, boost::proto::when, boost::proto::control::if_()> >, mpl_::int_<1>()>, boost::proto::when()>, boost::proto::when()> >' boost/proto/matches.hpp:968:13: instantiated from 'boost::proto::detail::or_4&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >&, boost::proto::exprns_::expr, 0l> >, 2l>, boost::proto::when, boost::mpl::plus), EmtnTermOrGram(boost::proto::_child_c<1>)>()>, boost::proto::when, boost::proto::control::if_()> >, mpl_::int_<1>()>, boost::proto::when()>, boost::proto::when()> >' boost/proto/matches.hpp:985:13: instantiated from 'boost::proto::detail::matches_&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >&, boost::proto::exprns_::expr, 0l> >, 2l>, boost::proto::control::or_, boost::mpl::plus), EmtnTermOrGram(boost::proto::_child_c<1>)>()>, boost::proto::when, boost::proto::control::if_()> >, mpl_::int_<1>()>, boost::proto::when()>, boost::proto::when()> > >' boost/proto/matches.hpp:985:13: instantiated from 'boost::proto::detail::matches_&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >&, boost::proto::exprns_::expr, 0l> >, 2l>, boost::proto::control::or_ >' boost/proto/matches.hpp:505:13: instantiated from 'boost::proto::result_of::matches&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >&, boost::proto::exprns_::expr, 0l> >, 2l>, EmotionGram>' boost/proto/operators.hpp:77:9: instantiated from 'boost::proto::detail::generate_if_left&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >, boost::proto::exprns_::expr, 0l> >' boost/proto/operators.hpp:115:9: instantiated from 'boost::proto::detail::as_expr_if2&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >, const Plus2, void, void>' boost/proto/operators.hpp:154:9: instantiated from 'boost::proto::detail::as_expr_if&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >, const Plus2, void, void>' main.cpp:38:86: instantiated from here boost/proto/matches.hpp:960:13: error: 'value' is not a member of 'boost::proto::detail::matches_&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >&, boost::proto::exprns_::expr, 0l> >, 2l>, boost::proto::control::and_ >, boost::proto::control::if_), EmtnTermOrGram(boost::proto::_child_c<0>)>()> > >' In file included from boost/preprocessor/iteration/detail/iter/forward1.hpp:62:0, from boost/proto/matches.hpp:367, from boost/proto/core.hpp:22, from boost/proto/proto.hpp:12, from Emotion.hpp:6, from main.cpp:5: boost/proto/matches.hpp: In instantiation of 'boost::proto::detail::matches_&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >&, boost::proto::exprns_::expr, 0l> >, 2l>, boost::proto::control::or_ >': boost/proto/matches.hpp:505:13: instantiated from 'boost::proto::result_of::matches&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >&, boost::proto::exprns_::expr, 0l> >, 2l>, EmotionGram>' boost/proto/operators.hpp:77:9: instantiated from 'boost::proto::detail::generate_if_left&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >, boost::proto::exprns_::expr, 0l> >' boost/proto/operators.hpp:115:9: instantiated from 'boost::proto::detail::as_expr_if2&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >, const Plus2, void, void>' boost/proto/operators.hpp:154:9: instantiated from 'boost::proto::detail::as_expr_if&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >, const Plus2, void, void>' main.cpp:38:86: instantiated from here boost/proto/matches.hpp:985:13: error: 'value' is not a member of 'boost::proto::detail::matches_&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >&, boost::proto::exprns_::expr, 0l> >, 2l>, boost::proto::control::or_, boost::mpl::plus), EmtnTermOrGram(boost::proto::_child_c<1>)>()>, boost::proto::when, boost::proto::control::if_()> >, mpl_::int_<1>()>, boost::proto::when()>, boost::proto::when()> > >' In file included from boost/proto/core.hpp:26:0, from boost/proto/proto.hpp:12, from Emotion.hpp:6, from main.cpp:5: boost/proto/operators.hpp: In instantiation of 'boost::proto::detail::generate_if_left&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >, boost::proto::exprns_::expr, 0l> >': boost/proto/operators.hpp:115:9: instantiated from 'boost::proto::detail::as_expr_if2&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >, const Plus2, void, void>' boost/proto/operators.hpp:154:9: instantiated from 'boost::proto::detail::as_expr_if&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >, const Plus2, void, void>' main.cpp:38:86: instantiated from here boost/proto/operators.hpp:77:9: error: 'value' is not a member of 'boost::proto::result_of::matches&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >&, boost::proto::exprns_::expr, 0l> >, 2l>, EmotionGram>' main.cpp: In function 'int main()': main.cpp:38:86: error: no match for 'operator>>' in 'operator||(const Left&, const Right&) [with Left = EW1, Right = EW1, typename boost::proto::detail::enable_binary, Left, IsEmtnStarter, Right, typename boost::proto::functional::make_expr::impl::result_type>::type = EmotionExpr&>, 0l> >, EmotionExpr&>, 0l> > >, 2l> >](((const EW1&)((const EW1*)(& EW1())))) >> Plus2()'