問題タブ [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 パーサーが key:value フラグメントを正しく処理しない
今日、yaml-cpp ライブラリで次の奇妙な動作を見つけました。
次の yaml フラグメント:
は、key=a および value=b の key:value 要素として正しく解析されます。しかし、フラグメントをこれに更新すると:
フラグメントは、スカラー値 "a:b" として評価されます。
これは正しい動作ですか?そして、パーサーにこのフラグメントを key:value として評価させる簡単な方法はありますか?
ありがとう!
c++ - ノードを処理済みかどうかを確認する方法
多くの冗長な値で構成される大きなファイルを処理しています (YAML のアンカーと参照を使用)。各構造で行う処理はコストがかかるため、既に処理したアンカーへの参照を見ているかどうかを検出したいと考えています。Python (python-yaml を使用) では、id(node) をキーとする辞書を作成するだけでこれを行いました。ただし、yaml-cpp は参照型として Node を使用するため、これはここでは機能しないようです。助言がありますか?
これはRetrieve anchor & alias string in yaml-cpp from documentに似ていますが、その機能は私の問題を解決するのに十分ですが、ノードの内部アドレスに基づいて何らかの方法でハッシュを取得できれば、必須ではありません。たとえば、それでいいでしょう。
私が行っている高価なことは、それ自体とその子を含む各ノードのハッシュを計算することです。
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 への定義されていない参照を取得します
何をリンクするのを忘れたのかわかりません。
アイデアはありますか?ご協力ありがとう御座います
c++ - yaml-cpp の YAML::Node に格納されている値の型を取得する
このコードを考えると:
YAML ノード 'Data' に含まれるデータが整数、浮動小数点数、または文字列であることを確認するにはどうすればよいですか? 注: ノードがスカラー、マップ、シーケンスなどであるかどうかを確認したくありません。
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:
私は何をすべきか?バイナリを送受信する別の方法はありますか? 私は何か間違ったことをしましたか?
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
。
この違いを示すコードを次に示します。