問題タブ [yaml-cpp]
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.
yaml-cpp - YAML-cppで反復せずにキーを取得する
反復せずにYAML-cppを使用してマップ内のキーを取得する簡単な方法はありますか?指示first()
から、YAML-cppイテレータクラスのメソッドを使用できることがわかりますが、実際に反復する必要はありません。インデントレベルで識別できるキーがありますが、キーが既知のリストの1つでない場合は、例外をスローする必要があります。私のコードは現在次のようになっています:
otherThingはYAMLファイルのgoodKeyの下にあるため、解析を続行するにはキー文字列が必要です。これは問題なく機能しますが、認識されないキーが何であるかをユーザーに伝えたいと思います。でも、どうやってアクセスしたらいいのかわかりません。その値を与える関数がヘッダーファイルに表示されません。どうすれば入手できますか?
yaml-cpp - ライブラリをビルドしようとすると、yaml-cpp コンパイラ エラーが発生する
Visual Studio Express 2012 (Cmake で生成されたプロジェクト ファイルを使用) を使用してyaml-cpp 0.5 をコンパイルしようとしていますが、impl.h からいくつかのエラーが発生しています。
すべてのエラーはテンプレート関数から来ておりnode_data::equals
、node_data::convert_to_node
run-tests
これらのエラーはプロジェクト ファイルから発生していることに注意してください。実際に lib ファイルをビルドすることはできますが、機能するためにこれらの関数が必要なため、ライブラリを使用できません。
何か案は?
編集: VS 2010 でコンパイルするときにも同じエラーが発生します。
yaml-cpp - 特定の yaml-cpp ノードの出力スタイルを設定する方法
次のように YAML ドキュメントを発行しています。
ノードの階層のどこかに、スタイルで出力したい特定のシーケンスがありFlow
ますが、他のすべてはデフォルトのスタイル設定を使用する必要があります。
すべてのノードを手動で発行し、関心のあるノードに注意する以外に、これを行う方法を見つけることができないようです。これは、比較的簡単なことに支払う代償が高いように思えます。
Node
理想的には、「放出される場合は、次のスタイルで実行してください」とタグ付けできるようにしたいと考えています。しかし、これに対するサポートはないと思います。
ドキュメント全体を手動で発行しなければならないことを回避する方法を考えられる人はいますか?
どうもありがとう。
compilation - http://code.google.com/p/yaml-cpp/wiki/HowToParseADocument の完全なサンプル Yaml プログラムがコンパイルされない
Linux ライブラリで G++ 4.6.2 を使用すると、指示に従ってビルドされました。test ディレクトリの run_tests は正常に動作します。
setenv YAML_HOME /nfs/site/proj/dt/ltt_test_15/work_area/ironchef/new_version/ironchef/trunk/yaml/yaml-cpp-0.5.0
ls $YAML_HOME 合計 640 16 CMakeCache.txt 0 build/ 0 libyaml-cpp.so.0.5@ 8 test/ 8 CMakeFiles/ 8 cmake_install.cmake 480 libyaml-cpp.so.0.5.0* 8 util/ 16 CMakeLists.txt 0 include/ 8 license.txt 8 yaml-cpp.pc 8 CTestTestfile.cmake 8 install.txt 8 matt_sandbox/ 8 yaml-cpp.pc.cmake 40 Makefile 0 libyaml-cpp.so@ 8 src/
cd matt_sandbox g++ -o test_yaml -g -I/usr/intel/pkgs/boost/1.48.0-gcc-4.6.2/include -I$YAML_HOME/include -I$YAML_HOME/include/yaml-cpp -I$YAML_HOME /include/yaml-cpp/node -I$YAML_HOME/include/yaml-cpp/node/detail -I$YAML_HOME/include/yaml-cpp/contrib main.cpp
コンパイラ エラー: main.cpp: 関数 `void operator>>(const YAML::Node&, Vec3&) で: main.cpp:25: エラー: 'operator>>' が 'YAML::Node::operator に一致しません[](const Key&) const [with ... 同様のエラー .... main.cpp:51: エラー: 'class YAML::Parser' には 'GetNextDocument' という名前のメンバーがありません
http://code.google.com/p/yaml-cpp/wiki/HowToParseADocumentの完全な例からコードをコピーして貼り付けます
yaml-cpp - 複雑なキーで yaml にアクセスする方法
ファイル test.yaml .....
yaml-cpp でこれらのいずれかにアクセスするには、どのコマンドを使用できますか。マップ全体にアクセスできますが、個々の要素にはアクセスできません。
これが私が試みていることです:
ここに私の結果があります:
これが yaml-cpp でまだ可能でない場合は、それも知りたいです。
c++ - なぜ挿入するのですか?(疑問符) マップに入る直前?
Yaml-cpp は、マップ エントリの直前に疑問符を挿入しているようです。結果は次のとおりです。
ご覧のとおり、ハイペロンから始まり、疑問符があります。何が起こるかを確認するために、さらにエントリを追加してみました。と を交互に繰り返すよう?
です:
。これはかなり奇妙です。
Nucleons キーと Hyperons キーのすべての内容を削除しようとしましたが、まだこれが表示されます
うーん。本当に奇妙です。これが私のコードです。乱雑さを許して
余談ですが、煩雑さを減らすためにインデントしています。だからそれも許して。
また、私の YAML 構造は適切ですか? それとも別のものに修正する必要がありますか?ありがとう。
yaml-cpp - 新しいyaml-cppAPIのカスタム入力タイプを定義する
新しいスタイルのYamlCppAPIを使用して、いくつかのカスタム入力タイプを定義しようとしています。2つの質問があります。最初に、現在0.3 style-apiを使用しており、すべてがうまく機能していると言いましょう。新しいAPIのコードの外観は約10倍優れているので、それに移行したいと思いました。
- 私の現在のアプローチがコンパイラを台無しにするのはなぜですか?
- yaml-cppは、ネストされたテンプレートを処理するのに十分スマートです。たとえば、パーサーがstd ::vectorをenc/ decする方法を知っている場合、MyAwesomeTypeのカスタムハンドラーを個別に定義します。enc/ dec aを要求すると、それがわかり
std::vector<MyAwesomeType>
ますか?
私のコードは、例をコピーしてWebサイト(ここ)に貼り付け、それを変更することから始めました。私の現在の実装は、の変換を処理しようとしstd::vector<std::pair<qint16,qint16>>
ます-これはコンパイルされません。(fyi-qint16は単に__int16のクロスプラットフォームtypedefです)
最後に、これを使って電話をかけたいと思います
...このように見える入力yamlに基づいています...
これから出力されるコンパイラエラーは約300行なので、ここでは投稿しません。プラットフォーム:Visual Studio 2010 SP1 x64
ご協力いただきありがとうございます。
編集:
これが私が得る多くのエラーの最初のものです。つまり、新しいスタイルでノードキーを解析するのは幸せではないようです...これを引き起こしているのは他のエラーに関連している可能性があるためです。
コード
原因
上記のエラーで言及されている75行目は
行デフォルトブランチのRev573を使用して最新のソースから再コンパイルしました。これらの例はすべて、そのコードからのものです。
c++ - yaml-cpp0.5.0APIを使用してリストから要素を削除する方法
次のテストコードは、期待どおりにリストから要素を削除しません。
テスト出力ファイルには次のものが含まれます。
ファイルには元のリストの値が含まれており、要素は削除されていないようです。リストから要素を削除する正しい方法は何ですか?
c++ - 参照によってノードをトラバースする慣用的な方法
「abc」など、データを取得するノードへのパスを表す文字列から始めます。現在、ノード階層を横断してそのノードに到達するために使用しているコードは、次のようになります (コンパイルできない可能性がありますが、アイデアはわかります)。
上記のコードは正しく動作しているように見えますが、ノードの横断割り当てを行うためのより良い方法があるかどうか疑問に思っています。currNode = currNode[key]
( ) のポインター/アドレスの代わりに直接ノード割り当て ( ) を使用するcurrNode = &((*currNode)[key])
と、あるノードから次のノードに移動するのではなく、ノード間の参照が作成されるようです。
これを達成するための「よりクリーンな」またはより慣用的な方法はありますか?
yaml-cpp - yaml-cpp ノード スタイルを設定するには?
vector3 クラスがあります。
結果は
結果を次のようにしたい:
古い API を使用する場合はYAML::Flow
、スタイルを設定するために使用できます。
新しい API を使用して、どのようにスタイルを設定できますか?
yaml-cpp プロジェクトの問題ページで次の質問をしました。
https://code.google.com/p/yaml-cpp/issues/detail?id=186
私は答えを得ました:
引き続きエミッターを使用して、フロー スタイルを設定できます。
しかし、それvector3
はオブジェクトの一部です。YAML::convert<>
私はテンプレートクラスを専門としています
ノードを返す必要がありますが、エミッターはノードに変換できません。
私はそのようなオブジェクトが必要です:
これどうやってするの?