問題タブ [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.

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

yaml-cpp - Yaml-cpp パーサーが key:value フラグメントを正しく処理しない

今日、yaml-cpp ライブラリで次の奇妙な動作を見つけました。

次の yaml フラグメント:

は、key=a および value=b の key:value 要素として正しく解析されます。しかし、フラグメントをこれに更新すると:

フラグメントは、スカラー値 "a:b" として評価されます。

これは正しい動作ですか?そして、パーサーにこのフラグメントを key:value として評価させる簡単な方法はありますか?

ありがとう!

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

c++ - ノードを処理済みかどうかを確認する方法

多くの冗長な値で構成される大きなファイルを処理しています (YAML のアンカーと参照を使用)。各構造で行う処理はコストがかかるため、既に処理したアンカーへの参照を見ているかどうかを検出したいと考えています。Python (python-yaml を使用) では、id(node) をキーとする辞書を作成するだけでこれを行いました。ただし、yaml-cpp は参照型として Node を使用するため、これはここでは機能しないようです。助言がありますか?

これはRetrieve anchor & alias string in yaml-cpp from documentに似ていますが、その機能は私の問題を解決するのに十分ですが、ノードの内部アドレスに基づいて何らかの方法でハッシュを取得できれば、必須ではありません。たとえば、それでいいでしょう。

私が行っている高価なことは、それ自体とその子を含む各ノードのハッシュを計算することです。

0 投票する
0 に答える
1689 参照

c++ - QTcreator を使用した YAML-CPP

Windows 7でcmakeでyaml-cppを使用しようとしています

チュートリアルに従って cmake をビルドし、 yaml-cpp.dll 、 yaml-cpp.lib 、 yaml-cpp.exp を取得しました

プロジェクトの libs ディレクトリ内に保存しました。

私は自分のプロファイルに追加します。インクルードファイルは

この中には、すべてのインクルード ファイルを含む私の yaml-cpp ディレクトリがあります。

私が使用する私のプログラムで

これはすべてエラーなしでコンパイルされています。しかし、追加すると

Yaml::Node ERROR への定義されていない参照を取得します

何をリンクするのを忘れたのかわかりません。

アイデアはありますか?ご協力ありがとう御座います

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

c++ - yaml-cpp の YAML::Node に格納されている値の型を取得する

このコードを考えると:

YAML ノード 'Data' に含まれるデータが整数、浮動小数点数、または文字列であることを確認するにはどうすればよいですか? 注: ノードがスカラー、マップ、シーケンスなどであるかどうかを確認したくありません。

0 投票する
0 に答える
395 参照

yaml-cpp - YAML::Binary をシリアライズ/デシリアライズする方法は?

アップデート

ベクトルに入れられたものは何でも壊れるようです。私は char と u/int/8/16/32 を試しましたが、それらはすべて何らかのエラーを生成します。私は少し困惑しています。コードにエラーがある可能性がありますが、YAML がどのように表示されるかはわかりません。そのため、データがいつ正しくなくなるかを探すという非常に良い仕事をしていない可能性があります。

Yaml-Cpp の YAML::Binary はまだ完成していますか? データを int としてシリアル化しようとしましたが、Yaml-Cpp は int と char について混同しているようで、これは一般的に機能しません。代わりに、Yaml::Binary を使用しようとしていますが、反対側で YAML::Binary ノードを回復しようとすると、反対側でエラーが発生します。具体的には、このチャンクは失敗します:

3: 0\n6:わあああああああああああああっ////a1pUVW14d2VGVldhRzlWTWtwSVZXNXdXR0V4Y0doV2FrcExVakpPUm1KR1pGZGlWa1YzVmxkd1IxbFhUWGhVYmxaVVlrWktjRlZzYUVOWFZscDBaVWM1VWsxcldraFdNbmhyV1ZaS1IxTnNVbFZXYkZwb1dsZDRWMlJIVmtoU2JGcE9ZVEZaZWxkVVFtRlVNVmw1VTJ0a1dHSlhhRmRXYTFaaFlVWmFkR1ZHVGxkV2JGb3dXa1ZrYjFSck1YUlVhbEpYWVRGS1JGWlVSbFpsUmxaWllVWlNhV0Y2VmxwWFZsSkhVekZzVjJOR2FHcGxhMXBVVlcxNGQyVkdWbGRoUnpsV1RXdHdTVlpYTlhkWFIwVjRZMGRvVjJGcmNFeFZha3BQVW0xS1IxcEdaR2xXYTFZelZteGtkMUl4YkZoVVdHaFZZbXhhVlZscldrdGpSbFp6WVVWT1dGWnNjREJhVldNMVZXc3hjbGRyYUZkTmJtaHlWMVphUzFJeA==\n7: /USER_NAMES/src/sockets/rsc/atkrscs.tar.gz\n1: 0\n4: 0\n5: 651633\n2: 000tar.gz\n1: 0\n4: 0\n5: 651633\n2: 0tar.gz\n1: 0\n4: 0\n5: 651633\n2: 0

として:

terminate called after throwing an instance of 'YAML::ParserException' what(): yaml-cpp: error at line 7, column 7: unknown escape character:

私は何をすべきか?バイナリを送受信する別の方法はありますか? 私は何か間違ったことをしましたか?

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

yaml-cpp - yaml-cpp で Null ノードの出力形式を指定するには?

現在(2013/12/12)のyaml-cppの最新リビジョンを使用しています。

YAML::Load("") との両方YAML::Load("---\n...")が Null ノードになることに気付きました。つまり、前者YAML::Load("").Type() == YAML::NodeType::Null に送信するとstd::ostream空の文字列が出力されますが、後者はチルダ ( ~) を出力します。

両方のノードが空の文字列を出力するようにします。どうすれば達成できますか?

を使用すると、チルダが文字列として解釈されることに気付いたので、そうしたいのですYAML::Load

この違いを示すコードを次に示します。