問題タブ [boost-phoenix]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - Boost :: Phoenixを使用してパラメータで関数を渡す方法は?
ここでの私の最初の投稿ですので、「道と習慣」を尊重しない場合は親切にしてください:)
Boost :: Phoenixを初めて使用し、次のように定義されたメソッドに関数を渡したいです。
私のセレクター関数は:
しかし、私のコンパイラは、from 'typename detail::expression::function_eval<rouletteWheelSelector, set<BTS *, BTS_Cmp, allocator<BTS *> > >::type const'
BTSSet::Iteratorに変換する方法はないと言っています。
私のファンクター宣言は大丈夫ですか?コンパイラにselの正しい戻り型を推測させるにはどうすればよいですか?
ありがとうございました !
c++ - フェニックス関数のセマンティックアクションがコンパイルされない
文字列を解析して、小文字であることを確認したいと思います。
精神はそれから木を構築するので、それはこの段階で行われなければなりません。
だから私はこのルールを持っています
問題は、コンパイルされないことです。エラーも大きく、投稿するのは大変です。
ありがとう
編集:演算子のオーバーロードを修正しました。これは私の悪い点でしたが、問題は解決しません。私は信じています*それはプレースホルダーと関係があります
EDIT2:問題を分割して、一連の文字ではなく文字で機能していることを確認しましたが、同じ範囲のエラーでは機能していません。
c++ - boost::bind、boost::lambda::bind、boost::phoenix::bind の違い
これらの異なるバインド アプローチの違いを理解しようとしています。boost::bind および boost::phoenix::bindにも同様の質問があります
しかし、誰かがこれを例で説明できれば、それは素晴らしいことです。また、boost::phoenix が boost::bind、booost::lambda ライブラリのスーパーセットであることは本当ですか?
c++ - boost :: phoenix::sortエラー
boost::phoenixライブラリを使用して以下のベクトルを並べ替えようとしています。クラスFooには、メンバー関数'int getvalue()'があります。目的は、「getvalue()」によって返される値を使用してベクトルをソートすることです。しかし、何かが欠けています。'::secondはクラスまたは名前空間ではありません'としてコンパイラエラーが発生します
誰かがこれを説明できますか?これを機能させるにはどのような変更が必要ですか?
ありがとう。
PS:関数object / lambdaまたは同様のものを使用できたはずですが、boost::phoenixを試してみたかったのです。
c++ - メンバー関数/変数によるブースト バインディング
クラス A はクラス B にアクセスできます。
クラス B の関数で、クラス A で定義された関数を呼び出し、クラス B から引数を渡したいと思います。
したがって、クラス AI では、クラス B に目的の機能を提供するために次のように記述してみてください。
クラス B では、関数を呼び出すだけです。
私が抱えている問題は、boost:ref が 1 つの引数しか期待しないことです...この問題を解決するにはどうすればよいですか?
c++ - ブーストスピリット:セマンティックアクションと鳳凰を使用する場合のパラメータタイプ
私はブースト スピリットを使用して数式を解析し、次のコードに抽出した問題に遭遇しました。
一致した文字列を保持する属性を持つ、1 つのトークンを持つ単純なレクサーがあります。パーサーは、トークンの属性を取得し、それを使用して関数を呼び出すための単一のルールを定義します。関数呼び出しの結果は、ルールの属性値である必要があります。
これはコンパイルに失敗します (calc_something: パラメーター 1 を const boost::spirit::_1_type から const std::string & に変換できません) - 明らかに qi::_1 の型が正しく推論されないためです。ただし、アクションを単純な「cout << qi::_1」に変更すると機能します。
私は精神を高めるのはかなり新しいですが、文法を正しく動作させることができました. 解析された値を取得する必要があるので、ここで立ち往生しており、私が得ることができる助けをいただければ幸いです。
c++ - Boost :: Spirit Expression Parser
boost::spiritパーサーに別の問題があります。
これは私のパーサーでした。解析されて問題"3.1415"
ありません"var"
が、解析しようとする"1+2"
と、それがわかりますparse failed
。binop
次に、ルールを次のように変更しようとしました
しかし、現在はもちろんASTを構築することはできません。これは_1
、と_2
の設定が異なるためです。私は_r1
言及されたようなものを見ただけですが、後押しとして-初心者として、私はどのようboost::phoenix
にそしてboost::spirit
相互作用するかを完全に理解することができません。
これを解決する方法は?
c++ - ブーストフェニックスを使用して、starts_withでfind_if呼び出しを呼び出すにはどうすればよいですか?
構造体のベクトルから要素を見つけようとしています。このコードは、大文字と小文字を区別して検索するときに機能します。大文字と小文字を区別しないように拡張しようとすると、2つの問題が発生します。
単に含める
boost/algorithm/string.hpp
と、以前に機能していたVS2010ビルドが中断されます。エラーは「'boost:: phoenix :: bind':オーバーロードされた関数へのあいまいな呼び出し」です。XcodeでOKをビルドします。バインドを明確にする方法はありますか?2番目の(コメントアウトされた)find_if行で、istarts_with呼び出しを追加して、構文が間違っていると思います。フェニックスのヘッダーから「エラー:「type」という名前のタイプがありません」というエラーが表示されます。問題#1を修正できると仮定すると、この行をどのように修正すればよいですか?
ありがとう!
コード:
c++ - phoenix::lambda関数の実行順序は?
私はブーストフェニックスの初心者です。小さなコードを書きましたが、実行シーケンスについて完全に混乱しています。コードを確認できます
最初の出力は「ab」ですが、2 番目の出力は「dbca」です。
私は何か間違いをしましたか?