토픽 언어 구문 트리를 구성하는 데 특성 전파를 사용하고 있습니다. 내 if 문의 정의에서 문제가 발생했습니다. 오류 메시지에서 알기는 어렵지만 rhs 속성이 예상되는 속성으로 축소되지 않았다고 생각합니다. 그것은 tuple <double,Statement,optional<Statement>>
으로 붕괴해야한다고 생각합니다.부스트 스피릿 자동 규칙 문제
오류 : C:\Program Files (x86)\CodeBlocks\MinGW\boost_1_43_0\boost\variant\variant.hpp|1293|error: no matching function for call to 'boost::detail::variant::make_initializer_node::apply<boost::mpl::pair<boost::detail::variant::make_initializer_node::apply<boost::mpl::pair<boost::detail::variant::initializer_root, mpl_::int_<0> >, boost::mpl::l_iter<boost::mpl::list3<boost::recursive_wrapper<Lang::CompoundStatement>, boost::recursive_wrapper<Lang::IfStatement>, Lang::VarStatement> > >::initializer_node, mpl_::int_<1> >, boost::mpl::l_iter<boost::mpl::list2<boost::recursive_wrapper<Lang::IfStatemen [error cuts out here]
감사합니다.
P. 코드를 올바르게 표시 할 수 없으므로 여기에 일반 텍스트 버전이 있습니다. http://freetexthost.com/a3smzx0zk5
P.P.S. 언급 할만한 몇 가지 정보가 있습니다. "else" >>
을 제거하고 > statement
을 >> statement
으로 변경하면 작동하지만 "else" >> statement
은 구문대로 축소해야합니다. 명시 적으로 "else"를 qi :: lit로 만들면 도움이되지 않습니다.
좋은 생각이지만 여전히 작동하지 않습니다. 작동하면 다른 사람을 제거, 그 유일한 단서가 있습니다. – Dave
좋아, 그럼 내가 컴파일 할 수있는 작은 자체 테스트를보고 싶습니다. 그렇지 않으면 무엇이 잘못되었는지를 말하는 것이 거의 불가능합니다. – hkaiser