問題タブ [boost-lambda]
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 Lambda) - ポインターを遅延取得する
怠惰なフェニックス値/ ref のポインターを取得する方法はありますか? もしそうなら、どのように?
c++ - 新しいファンクターを返すboost::lambdaファンクターの書き方
1つは呼び出し可能オブジェクト用、もう1つは関数引数用の2つのプレースホルダーを使用してラムダ式を記述し、呼び出し可能オブジェクトを指定すると最初に単項関数が返されるようにするにはどうすればよいですか。
以下の例でgenerate
は、呼び出し可能オブジェクト自体の最初のプレースホルダーと引数の2番目のプレースホルダーを持つラムダ式である必要があります。呼び出しgenerate(c)
は、関数呼び出し引数のみが欠落している単項関数を返す必要があります。実際、bool
静的アサートによって証明されるように、それは何らかの形ですでに型を返します。
c++ - Boost.Fusion関数のリストを使用する
次のコードで、関数オブジェクトのリストをいくつかの値に適用しようとしています。しかし、このコードは
err
boost_1_44\boost\fusion\algorithm\iteration\detail\for_each.hpp(82): エラー C2064 を引き起こします:
関数オブジェクトのリストを値に適用する方法は?
c++ - ブーストラダを使用して静的メンバーにアクセスする
を使用していくつかの簡単な述語を書き込もうとしていboost::lambda
ますが、大量のエラーが発生しています。
std::string::npos
ドキュメントを確認しましたが、ラムダ式で静的変数にアクセスすることに疑問があります。私のコードの下。
比較を変更した場合
うまく構築されますが、表現がうまく形成されているかどうかはわかりません。ラムダでの遅延評価のために、呼び出しが遅延する可能性があるため、期待した結果が得られないことがありました(この場合ではなく、ラムダを使用した以前のテストで)。
ブーストラダで静的メンバーにアクセスする正しい方法は一般的に何であるか知っていますか?
みんなありがとう
AFG
c++ - 抽象テンプレート arg のインスタンス化が原因で、boost::lambda 式がコンパイルに失敗します。説明および/または回避策はありますか?
私はboost::lambdaを学んでいますが、これまでの知識では解決できない状況を作り出すことができました。
明らかにboost::lambdaの腸内で、次の例は抽象クラスAbstractFooのインスタンス化を試み、ラムダ式のコンパイルを妨げます。問題は、インスタンス化しようとしている理由がわからないため、回避しようとできないことです。
次のことができるすべての boost::lambda エキスパート:
- なぜこれが起こっているのかについての手がかりを教えてください。
- 回避策を提案しますか?
例:
これは、重要な部分が次のように思われるモンスターテンプレートエラーでコンパイルに失敗します (gcc 4.4.3、ブースト 1_40 で):
c++ - shared_ptrでラムダをブースト
Baseと呼ばれるポリモーフィックな基本クラスと、Baseから継承するクラスDerived1とDerived2がある場合。次に、boost :: lambdaを使用して、ある種のファクトリを作成できます。何かのようなもの:
(これは実際のコードではありません。問題を説明しようとしているだけです。)
これは機能するので、文字列を使用してマップ内でルックアップを実行し、次にラムダ関数を呼び出してそのクラスをインスタンス化できます。すべて良い。
これに伴う問題は、生のポインターを扱っていることです。私はスマートポインター(std :: shared_ptr)を使用したいと思います。
だから私がから変更した場合:
に:
それから私はここから立ち往生しています。boost :: lambda::bindをboost::lambda :: new_ptrと組み合わせて使用してみましたが、運が悪く、過去のコンパイルエラーを取得できません。(テンプレート関連のエラー出力の膨大な連なり。)
StackOverflow内の他の同様のメッセージを確認しました。boost::bindとboost::lambda :: new_ptrを使用してshared_ptrコンストラクターを返すのは近いですが、そのソリューションを適用しようとすると、上記のテンプレートエラーが発生します。
サンプルコードと実際のエラーが役立つ場合は喜んで提供しますが、上記の情報で十分であることを願っています。GCC4.6ではboost1.47.0を使用し、Fedora15では4.7スナップショットを使用しています。
c++ - 関数をラップするブースト関数とラムダ
この単純なコードを変換したい:
そのようなものに、 setZComp を外部で宣言するのではなく、ある種のインライン宣言をするために
私は Boost Bind と Lambda にまったく慣れていないので、これが何らかの方法で実行できるかどうかわかりません。明らかに、上記のコードは機能しません。
c++ - 別のコピーアルゴリズム
2つのベクトルがあります。
これらの2つのベクトルは入力されており、同じサイズです。オブジェクト変数への割り当てを行うアルゴリズムが必要です。boost::lambdaを使用している可能性があります。まあ言ってみれば:
なにか提案を?
c++ - 共有ポインタのベクトルでラムダをブーストする
以下は、文字列の 1 つのベクトルからオブジェクトの別のベクトルに値をコピーする方法の 1 つの良い例からわずかに変更されたコードです。(参照:別のコピーアルゴリズム)
この場合、動的に割り当てられたオブジェクトを使用しています。boost::lambda::bind は boost::bind のような変更を処理できないため、コンパイルするにはプレースホルダーを逆参照する必要があります。
しかし、出力では次のようになります。
あなたの説明は何ですか?