問題タブ [boost-tuples]
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++ - 可変サイズのタプルを定義する
クラスで、テンプレート パラメーターで定義されたサイズのブースト fusion::vector を定義したいと考えています。ATM ヘルパー クラスの特殊化でこれを行っていますが、1 行でブースト mpl/fusion などを使用してこれを行う方法があるはずです。
何か案は?
c++ - Boost Spirit Auto Parserは、ダブルのタプルで失敗します
次のコードでは、Boost Spirit Auto Parserを1つまたは2つのdoubleに使用しようとしていますが、コンパイルされません。私はここで何が間違っているのですか?
コメント化された行はコンパイルされるため、 ;boost::tuple<double, double>
の属性タイプとして受け入れられます。qi::double_ >> qi::double_
ただし、属性タイプからパーサーを取得できません。なんで?
c++ - boost::mpl::vector を使用して可変個のテンプレートを作成しますか?
私は今のところ C++03 で立ち往生しており、任意の数のタイプ セーフな引数を受け入れるグローバル関数を作成したいと考えています (必要に応じて、9 などの合理的な制限まで)。
私は自分のコード ベースで完全なブースト ライブラリにアクセスboost::mpl::vector
できるので、ここで役立つことを願っています。また、これを書くのが不便になりたくありません。呼び出しサイトの構文は、次のように単純にする必要があります。
タイプセーフな方法でこれを実装する最良の方法は何でしょうか?
編集
また、これにはテンプレートの特殊化を使用できることも認識していますが、追加のテンプレート パラメーターごとに 1 つずつ、同じ構造体を 9 回定義することはしたくありません。これは面倒すぎます。できればそれは避けたいです。
macos - Mac OS X 10.7 でのブースト タプル、リンカ エラー
Mac OS X 10.7.3 を実行している MacBook Pro でソースから boost 1.49.0 をコンパイルしました。開発環境として Xcode 4.3.2 と Apple の LLVM 3.1 を使用しています。次のコード行 (boost http server1 の例から) では、説明されているようにリンク エラーが発生します。
回答を検索しましたが、それに関連するものは何も見つかりませんでした。また、エラーが発生している理由もわかりません。プロジェクトは lboost_system に対してリンクします。何か不足していますか?ライブラリをブーストするのは初めてです。
c++ - boost::tuple のベクトルを検索する
boost::tuple
オブジェクトのベクトルを検索するためのアルゴリズムまたはヘルパー メソッドがブースト ライブラリにありますか? これが私のコードです:
タプルのベクトルを検索し、タプルの最初の要素として値 20 を持つ最初のタプルを見つけたいと考えています。そのタプルの 2 番目と 3 番目の要素にアクセスしたい。
c++ - ブーストタプルの両端キューの並べ替え
どこかに単純なタイプミスがあるかどうかはわかりませんが、タプルの両端キューをソートする際に問題が発生しています。
したがって、私の両端キューは次のようになります。
そして、私はソートするための私の呼び出しがあります:
そして私のソート機能:
何が起こるかというと、stl_heap.hとstl_algo.hでエラーが発生します。例えば、
呼び出されたオブジェクトタイプ'
<bound member function type>
'は、関数または関数パラメータではありません。
編集:
明確にするために、これはすべてクラスのプライベートメンバー内で行われます。
c++ - std::mapのキーに関する問題
次のコードを検討してください。整数と整数のベクトルで構成されるタプルは、マップのキーとして定義されます。ただし、キーとして整数と整数で構成されるタプルを挿入または検索するときに、コンパイラーがエラーをスローしないことに驚きました。タプルの2番目の要素は整数の型ベクトルである必要があるため、これはどのようになり ますか?
c++ - 順序付けられた一意のインデックスのキーとして参照のboost::tupleを使用してマルチインデックス挿入エラーをブーストします
私はこれを私が考えることができる最も単純なサンプルコードに要約しました。
メンバーによってインデックス付けされたブーストマルチがあります:
これを行うと、マルチインデックスはすべてのアイテムが等しいと見なすように見えます(サイズが1より大きいことはありません)
2つのメンバーを持つ構造を格納していますが、マルチインデックスの一意のキーを両方のメンバーにしたいと思います。参照のタプルを作成すると、これはかなり簡単に達成できると思いました。ただし、期待どおりに動作しません。タプル内のアイテムが参照である場合、すべての新しいアイテムが既存のアイテムと競合しているようです。参照から離れるだけでコードが期待どおりに動作することにも注意してください。ただし、参照ケースが機能しない理由を理解するのに役立ちません。
例で述べたように、タプルに値を保持させ、すべてを参照しない場合は、期待どおりに機能します。
私はさまざまな可能性を調査することに時間を費やしました(参照をぶら下げる、ブーストを比較する:マルチインデックスのない小さなプログラムでの参照のタプルなど)
これが私のコンパイルコマンドです:g ++ -O0 -ggdb -Wall -Werror test.cc -lboost_system -lpthread
プログラムを実行すると、次のようになります。
itr = 1 10 itr = 1 10
私が1,20と3,10を挿入しようとしているにもかかわらず、マルチはそれらが1,10に等しいと考えているように見えることを示しています。
私はかなり困惑しています。ありとあらゆる助けをいただければ幸いです。
c++ - タプルとboost.fusionを使用する場合、構造体を使用する理由はありますか?
タプルは構造体に似ています(ここで説明:Boost :: Tuples vs Structs for return values)。唯一の利点は、構造体が数字ではなく短く、キーで記述できる方が便利なことのようです。
フュージョンマップと構造体を使用して、構造体をシミュレートするための戻り値として、キーBoost::TuplesとStructsでアクセスすることもできます。もう少し書きます。
パフォーマンスにもペナルティはないようです。ビューを使用するため、フュージョンの方が高速な場合があります。
したがって、構造体を使用する唯一の理由は、コードをさらに数行記述したくない場合と、コードを読みやすくしたい場合です。