問題タブ [boost-propertytree]
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::property_treeに配置する正しい方法は何ですか?
次の例を検討してください。
私は後押しするのが初めてで、Foo オブジェクトをプロパティ ツリーに入れたいと思っています。上記の例はコンパイルされず、エラーが発生します。
c:\mingw\bin\../lib/gcc/mingw32/4.5.2/../../../../include/boost/property_tree/stream_translator.hpp:33:13: error: no match for 'operator<<' in 's << e'
誰かがそれを行う正しい方法を提案できますか?
c++ - ブーストプロパティツリー、挿入する要素へのイテレータ?
かなり標準的な機能だと思うので、ブーストのマニュアルやインターネットをよく検索しましたか?
さて、私はプロパティツリーを「マージ」することを検討しています。- 関数 に気付きましたinsert
。ツリーをこれとマージできたらいいのにと思います。以下は、私が働こうとしている行です:
base
およびt
「プロパティ ツリー」でbase
あり、(多くのうちの 1 つ) ブランチとして「BRANCH」を持っています。今、私はt
このブランチに挿入したいですか?
より具体的には、その要素を名前で知っている場合、どのように「要素」へのイテレータを取得できますか?
c++ - プロパティ ツリーの xml-parser 例外の複数の読み込み
プロパティ ツリー xml-parsing を使用してアプリケーションの設定を編集しています。構造体の default-settings を作成しました。
アプリケーションの default_settings ds でグローバル変数を作成し、この変数 (ds.imPath) を介してそれらを呼び出すことにより、imPath、calPath、.. などの変数にアクセスします。
奇妙なことは、ロードが1回行われると機能することですが、例外が発生します
何を指示してるんですか?
c++ - Boost のプロパティ ツリーの自動型
現在、私はこのコードを持っています:
私はこれを簡単にしようとしています。私を止める唯一のことは、将来 std::string 変数も持つことです。つまり、すべての値を単純にループして as() を使用しても機能しません。
as<>() に boost::any を使用しようと考えましたが、うまくいきません (テンプレート エラーの負荷)。また、どのタイプになるかを指定する値を持つタプルを用意し、それを切り替えて適切な as<>() を呼び出すことも検討しましたが、それはやり過ぎのようです。
これを簡単にする方法はありますか?
c++ - 名前のないノードを boost::property_tree::ptree に追加する
JSONパーサーが配列に対して行うのと同じように、名前のないノードをboost::property_tree::ptreeに追加する必要があります。ただし、実行したい場合は、実行時に次のようなアサーションが表示されます。
私はそれのようにします
ここで、tree と child は両方とも ptree-s で名前は char* です。
ptree-s の JSON パーサーのようにするにはどうすればよいですか?
xml - ブースト::プロパティツリーで子ノードを反復処理する方法は?
XML ファイルから boost::property_tree::ptree をロードすると、次のようになります。
それを read_xml を使用してプロパティ ツリーに読み込みます。ここで、タグに似た構造体を含むベクターを構築したいと考えていelement
ます。私は次のことができます:
これまでのところは問題ありませんが、要素内のデータを取得するのに問題があります。node.second
それを含める必要がありますが、適切にアクセスするにはどうすればよいですか? node.second.get("xmlattr.type")
働かないでください。
c++ - boost :: property_tree :: ptreeをマージ/更新するにはどうすればよいですか?
boost :: property_treeのドキュメントを読みましたが、ptreeを更新したり別のptreeとマージしたりする方法が見つかりませんでした。どうすればよいですか?
以下のコードを考えると、update_ptree関数はどのようになりますか?
新しいptreeを繰り返し処理し、「put」を使用して値を挿入することを考えました。しかし、「put」には型が必要であり、新しいptreeからその情報を取得して、古いptreeの引数として使用する方法がわかりません。
update_ptree関数で試したことの1つは、次を使用することです。
基本的に、pt_のルートに子としてptを追加しようとします。残念ながら、これは機能していないようです。
何か案は?
私はどんな助けにも感謝しています。
ありがとうございました。
(この質問にproperty_treeタグとptreeタグを追加しようとしましたが、許可されませんでした)
c++ - ブースト プロパティ ツリー: ポインタを格納する方法は?
これがデフォルトではなく、Boost プロパティ ツリーを使用する方法として好ましくないことはわかっています。しかし、名前付きポインターのツリーを作成するために必要なものはすべて揃っているようです。だから私は試しました:
可能であれば、自動復元できるようにしたいと思います(単純な.get()
not を使用.get<T>
)
関数へのポインタを格納できるようです(主な理由は私がそれを使いたいからです)。しかし、私はそれからそれらを取得することはできません(だから、自動復元可能になるようにBoostプロパティツリーにポインターを保存する方法を知りたいですか?
c++ - C++Boostプロパティツリー属性修飾子による既存のノードの更新
では、XML構造のサンプルを次に示します。
私は2つのことができるようになりたいです:
- 属性のセレクターのように、すべてのIgnore要素をループすることなく、TestA要素に直接getを実行します。
- 他に何もないとしても、Ignore要素のいずれかを更新する方法が必要であり、それを理解できないようです
要素を削除して再作成する必要がありますか?要素(同じレベルで同じ名前の要素が多数ある場合)を属性(そのレベルで一意になる)で修飾するputを実行する方法を理解できないようです。
何かのようなもの:
または、最終目標を達成できるその他のもの。どうもありがとうございます!
完全な開示:私はC ++にかなり慣れていないので、露骨に明白な何かを見逃している可能性があります。
c++ - ブースト プロパティ ツリーを使用して XML を解析する
次の XML ファイルがあり、以下の構造を使用して保存したいと考えています。
データ構造体:
xml ファイル:
diagram.states にアクセスする方法は明らかです。次のコードでそれを行うことができます:
私には明らかではないのは、レベルの diagram.transitions.transition からデータにアクセスするにはどうすればよいですか?
私の問題は、いくつかのレベルでより複雑な xml ファイルを解析する方法に関するドキュメントに例が見つからなかったことです。