本文整理汇总了C++中dynamiccontext::Ptr::contextPosition方法的典型用法代码示例。如果您正苦于以下问题:C++ Ptr::contextPosition方法的具体用法?C++ Ptr::contextPosition怎么用?C++ Ptr::contextPosition使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类dynamiccontext::Ptr
的用法示例。
在下文中一共展示了Ptr::contextPosition方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: mapToItem
Item GenericPredicate::mapToItem(const Item &item,
const DynamicContext::Ptr &context) const
{
const Item::Iterator::Ptr it(m_operand2->evaluateSequence(context));
const Item pcateItem(it->next());
if(!pcateItem)
return Item(); /* The predicate evaluated to the empty sequence */
else if(pcateItem.isNode())
return item;
/* Ok, now it must be an AtomicValue */
else if(BuiltinTypes::numeric->xdtTypeMatches(pcateItem.type()))
{ /* It's a positional predicate. */
if(it->next())
{
context->error(QtXmlPatterns::tr("A positional predicate must "
"evaluate to a single numeric "
"value."),
ReportContext::FORG0006, this);
return Item();
}
if(Double::isEqual(static_cast<xsDouble>(context->contextPosition()),
pcateItem.as<Numeric>()->toDouble()))
{
return item;
}
else
return Item();
}
else if(Boolean::evaluateEBV(pcateItem, it, context)) /* It's a truth predicate. */
return item;
else
return Item();
}
示例2: evaluateSingleton
Item PositionFN::evaluateSingleton(const DynamicContext::Ptr &context) const
{
Q_ASSERT(context);
return Integer::fromValue(context->contextPosition());
}