我有一系列的OpenCV的產生YAML文件,並願與YAML-CPP試圖解析OpenCV的YAML輸出中使用YAML-CPP
我就簡單的東西做得還可以對其進行解析,但矩陣代表性被證明是困難的。
# Center of table
tableCenter: !!opencv-matrix
rows: 1
cols: 2
dt: f
data: [ 240, 240]
這應當映射到載體
240
240
與類型浮。我的代碼如下所示:
#include "yaml.h"
#include <fstream>
#include <string>
struct Matrix {
int x;
};
void operator >> (const YAML::Node& node, Matrix& matrix) {
unsigned rows;
node["rows"] >> rows;
}
int main()
{
std::ifstream fin("monsters.yaml");
YAML::Parser parser(fin);
YAML::Node doc;
Matrix m;
doc["tableCenter"] >> m;
return 0;
}
,但我得到
terminate called after throwing an instance of 'YAML::BadDereference'
what(): yaml-cpp: error at line 0, column 0: bad dereference
Abort trap
我周圍中搜索爲YAML-CPP一些文檔,但似乎沒有要任何,除了一個簡短的介紹例如在解析和發射。不幸的是,在這種特殊情況下,這兩者都不起作用。
據我所知,!表明這是一個用戶定義的類型,但是我沒有看到yaml-cpp如何解析該類型。