![]() |
От: | push | |
Дата: | 03.07.14 11:33 | ||
Оценка: |
template <typename Iterator>
struct mini_xml_grammar : qi::grammar<Iterator, mini_xml(), ascii::space_type>
{
mini_xml_grammar() : mini_xml_grammar::base_type(xml)
{
...............................
xml =
start_tag [at_c<0>(_val) = _1] // <-- вот тут
>> *node [push_back(at_c<1>(_val), _1)]
>> end_tag(at_c<0>(_val))
;
}
1>------ Build started: Project: BoostSpirit, Configuration: Debug Win32 ------
1> QiBases.cpp
1>с:\dev\learning\boostspirit\src\boostspiritlearning\qibases.cpp(778): error C2678: binary '=' : no operator found which takes a left-hand operand of type 'const boost::spirit::attribute<N>' (or there is no acceptable conversion)
1> with
1> [
1> N=0
1> ]
1> с:\libs\boost_1_51_0\boost\spirit\home\support\context.hpp(195): could be 'boost::spirit::attribute<N> &boost::spirit::attribute<N>::operator =(const boost::spirit::attribute<N> &)'
1> with
1> [
1> N=0
1> ]
1> while trying to match the argument list '(const boost::spirit::attribute<N>, const boost::spirit::_1_type)'
1> with
1> [
1> N=0
1> ]
1> с:\dev\learning\boostspirit\src\boostspiritlearning\qibases.cpp(749) : while compiling class template member function 'clientN::mini_xml_grammar<Iterator>::mini_xml_grammar(void)'
1> with
1> [
1> Iterator=std::_String_const_iterator<char,std::char_traits<char>,std::allocator<char>>
1> ]
1> с:\dev\learning\boostspirit\src\boostspiritlearning\qibases.cpp(799) : see reference to class template instantiation 'clientN::mini_xml_grammar<Iterator>' being compiled
1> with
1> [
1> Iterator=std::_String_const_iterator<char,std::char_traits<char>,std::allocator<char>>
1> ]
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========