diff options
Diffstat (limited to 'src/xmlpatterns/data/qabstractfloatcasters.cpp')
-rw-r--r-- | src/xmlpatterns/data/qabstractfloatcasters.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/xmlpatterns/data/qabstractfloatcasters.cpp b/src/xmlpatterns/data/qabstractfloatcasters.cpp index bf53fa4..95ac17a 100644 --- a/src/xmlpatterns/data/qabstractfloatcasters.cpp +++ b/src/xmlpatterns/data/qabstractfloatcasters.cpp @@ -63,9 +63,19 @@ template <const bool isDouble> Item BooleanToAbstractFloatCaster<isDouble>::castFrom(const Item &from, const QExplicitlySharedDataPointer<DynamicContext> &context) const { +#if defined(Q_CC_RVCT) + // RVCT doesn't like using template parameter in trinary operator when the trinary operator result is + // passed directly into another constructor. + bool tempDouble = isDouble; + if(from.template as<AtomicValue>()->evaluateEBV(context)) + return tempDouble ? toItem(CommonValues::DoubleOne) : toItem(CommonValues::FloatOne); + else + return tempDouble ? toItem(CommonValues::DoubleZero) : toItem(CommonValues::FloatZero); +#else if(from.template as<AtomicValue>()->evaluateEBV(context)) return isDouble ? toItem(CommonValues::DoubleOne) : toItem(CommonValues::FloatOne); else return isDouble ? toItem(CommonValues::DoubleZero) : toItem(CommonValues::FloatZero); +#endif } |