本文整理汇总了C++中JSValue::MemberBegin方法的典型用法代码示例。如果您正苦于以下问题:C++ JSValue::MemberBegin方法的具体用法?C++ JSValue::MemberBegin怎么用?C++ JSValue::MemberBegin使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类JSValue
的用法示例。
在下文中一共展示了JSValue::MemberBegin方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: parse
void parse(const char* name, const JSValue& layer) {
mbgl::util::erase_if(values, [] (const auto& p) { return p.first != ClassID::Fallback; });
std::string transitionName = { name };
transitionName += "-transition";
for (auto it = layer.MemberBegin(); it != layer.MemberEnd(); ++it) {
const std::string paintName { it->name.GetString(), it->name.GetStringLength() };
if (paintName.compare(0, 5, "paint") != 0)
continue;
bool isClass = paintName.compare(0, 6, "paint.") == 0;
if (isClass && paintName.length() <= 6)
continue;
ClassID classID = isClass ? ClassDictionary::Get().lookup(paintName.substr(6)) : ClassID::Default;
if (it->value.HasMember(name)) {
if (auto v = parseProperty<T>(name, it->value[name])) {
values.emplace(classID, v);
}
}
if (it->value.HasMember(transitionName.c_str())) {
if (auto v = parseTransitionOptions(name, it->value[transitionName.c_str()])) {
transitions.emplace(classID, *v);
}
}
}
}
示例2: parseSources
void Parser::parseSources(const JSValue& value) {
if (!value.IsObject()) {
Log::Warning(Event::ParseStyle, "sources must be an object");
return;
}
for (auto it = value.MemberBegin(); it != value.MemberEnd(); ++it) {
std::string id = *conversion::toString(it->name);
conversion::Result<std::unique_ptr<Source>> source
= conversion::convert<std::unique_ptr<Source>>(it->value, id);
if (!source) {
Log::Warning(Event::ParseStyle, source.error().message);
continue;
}
sourcesMap.emplace(id, (*source).get());
sources.emplace_back(std::move(*source));
}
}