本文整理汇总了C++中Holder::isValid方法的典型用法代码示例。如果您正苦于以下问题:C++ Holder::isValid方法的具体用法?C++ Holder::isValid怎么用?C++ Holder::isValid使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Holder
的用法示例。
在下文中一共展示了Holder::isValid方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: serialize
void JsonSerializer::serialize(Holder h)
{
if (!h.isValid())
return;
auto desc = h.descriptor();
switch (desc->getKind())
{
case TypeDescriptor::kPrimitive:
{
auto primDesc =
static_cast< const PrimitiveTypeDescriptor * >(desc);
os << '"' << primDesc->getString(h) << '"';
}
break;
case TypeDescriptor::kClass:
{
auto classDesc =
static_cast< const ClassDescriptor * >(desc);
ModelClass * obj = classDesc->get(h);
serialize(obj);
}
break;
case TypeDescriptor::kList:
{
++level;
os << '[';
auto vecDesc =
static_cast< const ListTypeDescriptor * >(desc);
const auto values = vecDesc->getValue(h);
for (size_t i = 0; i < values.size(); i++)
{
os << std::endl << indent();
serialize(values[i]);
if (i + 1 < values.size())
os << ',';
}
--level;
os << std::endl << indent();
os << ']';
}
break;
default:
os << "\"Unsupported type\"";
break;
}
}