本文整理汇总了C++中ParameterPtr::serialize_yaml方法的典型用法代码示例。如果您正苦于以下问题:C++ ParameterPtr::serialize_yaml方法的具体用法?C++ ParameterPtr::serialize_yaml怎么用?C++ ParameterPtr::serialize_yaml使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ParameterPtr
的用法示例。
在下文中一共展示了ParameterPtr::serialize_yaml方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: testSerialization
void testSerialization(T min, T max)
{
YAML::Node node;
T def = min;
{
ParameterPtr p = factory::declareRange<T>("foo", min, max, def, 1);
p->serialize_yaml(node);
EXPECT_STREQ(p->name().c_str(), node["name"].as<std::string>().c_str());
EXPECT_STREQ("range", node["type"].as<std::string>().c_str());
}
{
ParameterPtr p = factory::makeEmpty(node["type"].as<std::string>());
ASSERT_NE(nullptr, p);
p->deserialize_yaml(node);
RangeParameterPtr range = std::dynamic_pointer_cast<RangeParameter>(p);
ASSERT_NE(nullptr, range);
EXPECT_STREQ("foo", range->name().c_str());
EXPECT_EQ(min, range->min<T>());
EXPECT_EQ(max, range->max<T>());
auto val = range->as<T>();
EXPECT_EQ(def, val);
}
SerializationBuffer buffer;
{
ParameterPtr p = factory::declareRange<T>("foo", min, max, def, 1);
ParameterSerializer::instance().serialize(*p, buffer);
}
{
StreamablePtr s = ParameterSerializer::instance().deserialize(buffer);
ASSERT_NE(nullptr, s);
ParameterPtr p = std::dynamic_pointer_cast<Parameter>(s);
ASSERT_NE(nullptr, p);
RangeParameterPtr range = std::dynamic_pointer_cast<RangeParameter>(p);
ASSERT_NE(nullptr, range);
EXPECT_STREQ("foo", range->name().c_str());
EXPECT_EQ(min, range->min<T>());
EXPECT_EQ(max, range->max<T>());
auto val = range->as<T>();
EXPECT_EQ(def, val);
}
}