Получить тип значения, хранящегося в YAML :: Node для yaml-cpp

Учитывая этот код:

void LoadFromYaml(const YAML::Node& node){
const YAML::Node& Data=node["Data"];
if(Data){
if(Data.ValueIsInt)// Do something with integer.
if(Data.ValueIsFloat)// Do something with float.
if(Data.ValueIsString)// Do something with string.
}
}

Как проверить, что данные, содержащиеся в узле YAML «Данные», представляют собой целое число, число с плавающей запятой или строку? Примечание. Я не хочу проверять, является ли узел скаляром, картой, последовательностью и т. Д.

3

Решение

Вы можете попытаться преобразовать узел в каждый тип:

try {
int value = data.as<int>();
// do something
} catch (const BadConversion& e) {
// do something else
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]