realbasic-nug
[Top] [All Lists]

Re: Operator_Compare with variant objects?

To: REALbasic NUG <realbasic-nug@lists.realsoftware.com>
Subject: Re: Operator_Compare with variant objects?
From: Michael Diehr <md03@xochi.com>
Date: Sat, 30 May 2009 15:18:57 -0700
Authentication-results: mx.google.com; spf=neutral (google.com: 74.124.194.228 is neither permitted nor denied by best guess record for domain of realbasic-nug-bounces@lists.realsoftware.com) smtp.mail=realbasic-nug-bounces@lists.realsoftware.com
Delivered-to: listarchive@realsoftware.com
In-reply-to: <4A2198A8.5010204@inspiringapps.com>
References: <AEF09038-DB63-4857-BBE1-AE5D13AA6FF3@xochi.com> <3AA0AEC2-D230-4A4C-8788-84C3FCC17A44@great-white-software.com> <9142A64B-6ACF-4072-B847-82A5C7098969@xochi.com> <4A2198A8.5010204@inspiringapps.com>
Reply-to: REALbasic NUG <realbasic-nug@lists.realsoftware.com>
Sender: realbasic-nug-bounces@lists.realsoftware.com
On May 30, 2009, at 1:35 PM, Joe Strout wrote:
Michael Diehr wrote:

    dim o1,o2 as object
    o1 = v1.objectValue
    o2 = v2.objectValue
    if o1 = o2 // still doesn't call the Operator_Compare

That's because Object doesn't have an Operator_Compare.

Keep in mind that comparisons are compiled at, er, compile time. So, for a comparison operator to be invoked, it must be something the compiler can know about at that time -- i.e., something defined on the static type of the object references involved.

Ok, but then how/why does Operator_Convert work? Wouldn't the same issue hold?

The compiler can't know in advance that the object a variant's holds is a myClass with an operator_convert as string, so obviously it's checking the class type at runtime and calling it.

If it's magic compiler pixie dust -- I wonder if we could get that magic applied to Operator_Compare() for Variants?


_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>

Search the archives:
<http://support.realsoftware.com/listarchives/lists.html>


<Prev in Thread] Current Thread [Next in Thread>