예제 #1
0
파일: SelectorValue.cpp 프로젝트: ncdc/qpid
Value operator/(const Value& v1, const Value& v2)
{
    boost::scoped_ptr<NumericPairBase> nbp(promoteNumeric(v1, v2));
    if (nbp) return nbp->div();

    return Value();
}
예제 #2
0
파일: SelectorValue.cpp 프로젝트: ncdc/qpid
bool operator>=(const Value& v1, const Value& v2)
{
    boost::scoped_ptr<NumericPairBase> nbp(promoteNumeric(v1, v2));
    if (nbp) return nbp->ge();

    return false;
}
예제 #3
0
bool operator>(Value v1, Value v2)
{
    promoteNumeric(v1, v2);

    switch (v1.type) {
    case Value::T_EXACT:   return v1.i > v2.i;
    case Value::T_INEXACT: return v1.x > v2.x;
    default:               break;
    }
    return false;
}
예제 #4
0
Value operator/(Value v1, Value v2)
{
    promoteNumeric(v1, v2);

    switch (v1.type) {
    case Value::T_EXACT:   return v1.i / v2.i;
    case Value::T_INEXACT: return v1.x / v2.x;
    default:               break;
    }
    return Value();
}
예제 #5
0
파일: SelectorValue.cpp 프로젝트: ncdc/qpid
bool operator!=(const Value& v1, const Value& v2)
{
    boost::scoped_ptr<NumericPairBase> nbp(promoteNumeric(v1, v2));
    if (nbp) return nbp->ne();

    if (v1.type != v2.type) return false;
    switch (v1.type) {
    case Value::T_BOOL: return v1.b != v2.b;
    case Value::T_STRING: return *v1.s != *v2.s;
    default: // Cannot ever get here
        return false;
    }
}
예제 #6
0
bool operator!=(Value v1, Value v2)
{
    promoteNumeric(v1, v2);
    if (!sameType(v1,v2)) return false;

    switch (v1.type) {
    case Value::T_BOOL:    return  v1.b != v2.b;
    case Value::T_STRING:  return *v1.s != *v2.s;
    case Value::T_EXACT:   return  v1.i != v2.i;
    case Value::T_INEXACT: return  v1.x != v2.x;
    default:               return false;
    }
}