-1

マージと呼ばれる優れた機能があるため、yaml を使用するつもりでした。(「<<」キー)

そして、私はcppに取り組んでいるので、パーサーに「yaml-cpp」を使用しています。

しかし!yaml-cpp はマージをサポートしていません。代替手段として何ができますか?

他のスクリプト、他のパーサー、解析する他の方法、またはマージ機能を使用できる場合は何でも良いです。

しかし、複数のオブジェクトをマージする必要はありません。何かを定義し、最初のオブジェクトから継承された別のオブジェクトを作成し、いくつかの値をオーバーライドするだけです。そのこと。

読んでくれてありがとう。

4

3 に答える 3

0

'yaml-cpp' に機能の実装を依頼してください。

于 2011-02-28T10:07:55.883 に答える
0

待ちきれず、マージが必要な場合は、yaml-cpp の問題に関する「barma」の提案に従うことができます: http://code.google.com/p/yaml-cpp/issues/detail?id=41 #c12

変更は、以下の行を FindValueForKey テンプレートに挿入することです (for-loop と の間return 0):

const Node *pValueMerge = FindValueForKey(std::string("<<"));
if(pValueMerge) {
    return pValueMerge->FindValueForKey(key);
}

問題は (Issue ページで述べたように) 仕様で許可されていることです。

<<: [*dict1, *dict2]

複数の辞書をマージします。しかし、それは必要ないようです。

于 2011-03-01T00:06:33.640 に答える