掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
boost::spiritの文法内のセマンティックアクションを自作 (ID:70550)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
(外部に関数を書くのなら簡単に出来るが、その場合、)"今度はCScriptParser::name_bufferに保存するための操作が複雑化してしまう" ということに関してです。 // 外部の関数 void f(const int a) {// ここでCScriptParserのメンバ変数に対して何かするためには、CScriptParser型のグローバル変数を使うしかない } class CScriptParser : public boost::spirit::classic::grammar<CScriptParser> { 略 // 構文解析ルールの記述 definition(const CScriptParser& self) { A = boost::spirit::classic::int_p[&f] } 略 }; コンパイル自体は通るのですが、fによるCScriptParserのメンバ変数へのアクセスがグローバル変数経由になってしまうと思います(そうじゃない方法もある……のかな? でしたら解決なのですが)。 あと、“複雑化”っていう言い方が正しくなかったですね。 単にグローバル変数を使うってだけですし……。 申し訳ございません。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.