Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.135.190.101] |
|
Сообщ.
#1
,
|
|
|
есть примерно такой код
struct param_closure : boost::spirit::closure<param_closure, std::string, std::string > { member1 key; member2 value; }; line = ( comment | param[¶m_action] ); comment = ch_p('#') >> lexeme_d[ +(print_p) ][&comment_action] >> end_p; param = param_name[ param.key = construct_<std::string>(arg1, arg2) ] >> ch_p('=') >> param_value[ param.value = construct_<std::string>(arg1, arg2) ] >> end_p; как мне в param_action передать оба челна замыкания? воспронимается только такая сигнатура почему-то void param_action(const std::string& key) все остальное приводит к ошибкам с требованием, либо слишком много аргументов, либо не могу конвертировать std::string во что-нибудь другое upd: вообще все правильно работает, member1 считается почему-то return value. upd2: понял, что извратил логику и поплатился за это |
Сообщ.
#2
,
|
|
|
решил проблему с помощью std::pair< std::string, std::string > и member_var_ptr,
хороший пример приведен тут: http://article.gmane.org/gmane.comp.parsers.spirit.general/10273 |