問題タブ [boost-foreach]

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.

0 投票する
3 に答える
16727 参照

c++ - BOOST_FOREACH を使用して、ディレクトリ内のすべてのファイルを反復処理します

boost::filesystem と BOOST_FOREACH を使用して、ディレクトリ内のすべてのファイルを反復処理できますか? 私は試した

このコードはコンパイルおよび実行されますが、目的の結果が得られません。

0 投票する
4 に答える
2688 参照

c++ - const_iterator のみをサポートするコンテナーで BOOST_FOREACH を使用するにはどうすればよいですか?

私はこのコンテナを持っています:

それを考えると、次のコードは問題なくコンパイルされます。

ただし、Rowクラスには変更可能なイテレータを含めるべきではないため、変更可能なアクセスを削除して Row クラスを変更しました。

しかし、今度は同じ foreach ループがコンパイルに失敗します。

エラーメッセージから、明らかに失敗BOOST_FOREACHする型をインスタンス化しようとしていることがわかります。range_mutable_iterator代わりに定数範囲をインスタンス化するにはどうすればよいですか?

ありがとう。

編集

と の完全なクラス宣言は次RowFieldIteratorとおりです。

0 投票する
3 に答える
453 参照

c++ - BOOST_FOREACHマクロを安全に再定義する

私は次のマクロを持っています:

(私のコンテナーは可変反復APIを実装していないため、このマクロを使用しています。)

それに関する問題は、それcが2回評価されることです。

私の質問は、このマクロを次のように修正できるかどうかです。

  1. c最大で1回評価されます
  2. 最初の条件を満たすために作成されたローカル変数は、それぞれのforeachスコープ内にのみ存在します。
0 投票する
5 に答える
3091 参照

c++ - BOOST_FOREACH がハンドコーディングされたものと完全に同等ではないのはなぜですか?

ブーストドキュメントから 、

これにより、ほぼ最適なコードが生成されます。通常、BOOST_FOREACH のパフォーマンスは、同等の手作業でコーディングされたループの数パーセント以内です。

マクロと非標準の typeof 演算子を使用すると、まったく同等のものを生成できると思います。BOOST_FOREACH のどの機能が正確ではないのですか?

編集:

私のバージョン:

オーバーヘッドのないバージョンを作成しようとしています。これは非標準の typeof を使用し、value_type の代わりに iterator を指定します。ここで何か不足していますか?

0 投票する
3 に答える
6465 参照

c++ - BOOST_FOREACHを「純粋な」C++11の代替に置き換えますか?

BOOST_FOREACHこの例のを「純粋な」C++11に相当するものに置き換えることは可能ですか?

キーと値のペアをとへの参照に保持することが重要な機能kですv

私は試した:

しかし、範囲ベースのforループのアイデアはどれも機能していないようです。おそらく、範囲ベースのforループは、の前に宣言を持っている必要があります:

無効です。

私が見つけることができる最も近い同等物は次のとおりです。

BOOST_FOREACHこれはバージョンほど簡潔ではありません!

C ++ 11でブーストせずに同じことを簡潔に表現する方法はありますか?

0 投票する
2 に答える
1205 参照

c++ - 常に侵入的なリストでBOOST_FOREACHを使用する

BOOST_FOREACHマクロを使用して侵入リストを反復処理するには、次のコードを検討してください。

Boostバージョン1.48を指定すると、コードはclang 3.2(SVN)およびgcc 4.6.3で失敗しますが、gcc4.5.3では機能します。コードxsへの非const修飾パラメーターを使用すると機能します。iterateC ++ 11を有効にすると、すべてのコンパイラがコードを受け入れます。boost-1.46を使用する場合、両方のgccバージョンがコードを受け入れますが、clangはまだ受け入れません。

手元のコードはマクロの誤用BOOST_FOREACHですか、それともブースト側のエラーですか?通常のforループでの反復よりも優れた回避策はありますか?

編集: GCCclangのエラーメッセージをpastebin(どちらも非常に冗長です)に貼り付けました。

0 投票する
1 に答える
8031 参照

c++ - Boostプロパティツリーでオブジェクトを取得するにはどうすればよいですか

サンプルコードを理解して変更する必要があります。私はある時点で立ち往生していて、解決策を見つけることができませんでした。コードは次のとおりです。

ここで「秒」とはどういう意味ですか?

プログラムが読み取るJSONの例は次のとおりです。

もう1つの質問ですが、コードをコンパイルしようとすると、次のエラーも発生します。これはどういう意味ですか、どうすれば解決できますか?

どうもありがとう。

0 投票する
1 に答える
148 参照

c++ - ブーストなしの BOOST_FOREACH?

BOOST_FOREACHBoostを必要としないような「for each」マクロの実装はありますか?

0 投票する
1 に答える
10839 参照

c++ - ブースト プロパティ ツリーを使用した JSON の解析

themoviedb.com から映画情報を取得するアプリケーションを作成しています。情報は JSON ファイルで提供されます。ブースト プロパティ ツリーを使用して情報を保存しようとしています。しかし、少し問題があります。

次のコードで問題を説明します。

しかし、これを実行すると、次の出力が得られます。

私が間違っていることを誰かが知っていますか?BOOST_FOREACH コードにあると思います。

PS: LLVM GCC 4.2 コンパイラで Xcode 4.5.2 を使用します。

0 投票する
3 に答える
11381 参照

c++ - BOOST_FOREACHとベクトル

シーンのベクトルがありvector<Scene>ます。参照として、またはそうでない場合でも、要素を反復処理する正しい方法は何ですか?

例:これ:

マクロは、ベクトルの反復ごとにシーンをコピーしますか、それとも舞台裏で参照を使用しますか?

それで、これとは何か違いがあります: