問題タブ [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 のネストされた let ブロック内の変数の隠蔽
「内部」ローカル変数が「外部」ローカル変数を隠している場合、Boost Phoenix のネストされた let ブロックで問題が発生します。ドキュメントhereの「可視性」の例でも、ここに示されています。
次のようなエラーが表示されます。
フェニックスのインナーレットブロックのスコープ内でそのような変数を「シャドウ」する方法を知っている人はいますか? 現在、GCC バージョン 4.8 スナップショットで Ubuntu 13.04 を使用しています。クラン 3.2; ブースト 1.49; Boost 1.53も。
c++ - コンパイルする最も単純な Phoenix ラムダを取得できません
私は現在、次の非常に簡単なboost::phoenix::lambda
コンパイルを取得しようとしています:
ただし、これにより多くのエラーが生成されます (ここに投稿するには多すぎます)。コンパイラ出力の抜粋を次に示します。
Boost 1.53.0を搭載したWindows XPでMinGW 4.7.2を使用してこれらをコンパイルしています。私は何を間違っていますか?
c++ - Boost Phoenix でローカル変数の型を取得する
スコープ付き Boost Phoenix ステートメント内で使用されるローカル変数の型を取得するにはどうすればよいですか? Phoenix と Proto を使用して、Phoenix 式のさまざまな側面を抽出できます。たとえば、次のコードはアリティ (3) を公開します。タグタイプ (lambda_actor); Phoenix ラムダ式の子 2 タグ タイプ (shift_left):
ローカル変数の型を取得するにはどうすればよいですか。この例では:_a
および_b
?
c++ - Boost.Spirit.Qi: 解析時に「差分」パーサーを動的に作成する
-
「差分」パーサーは、バイナリ(マイナス) 演算子によって作成できます。
またはさらに複雑な違い:
しかし、解析時に差分パーサーの結果全体を生成するにはどうすればよいでしょうか?
以下のような形になると思います。
ここで、{..., ..., ...}
パーツは実際には stl コンテナーになりますが、それはポイントではありません。私はその部分を扱うことができます。
テンプレートは見つかりましたが、qi::difference<Left, Right>
使い方がわかりませんでした。
c++ - boost::phoenix ファンクタとして使用中のエラー メッセージ
私はboost::phoenixを学び、以下のようにstd::transformで使用しようとしています。
しかし、私はエラーが発生していますerror: base operand of '->' has non-pointer type 'const boost::phoenix::actor<boost::phoenix::argument<0> >'
それが何を意味するのかよくわかりません。どんな助けでも素晴らしいでしょう。ありがとう
c++ - Boost.spirit: 数値文字と文字列の解析
unsigned int、破棄される文字、および文字列を含む行を解析する必要がありX
ます。これらはすべて 1 つ以上のスペースで区切られています。例えば、1234 X abcd
上記のコードは 3 つの部分を解析しますが、文字列にはジャンク文字 ( �abcd
) が含まれ、サイズは 4 ではなく 5 になります。
パーサーの何が問題になっていますか? そして、なぜ糸にがらくたがあるのですか?