how to compare immutable ints?
Charles Hixson
charleshixsn at earthlink.net
Tue Jun 18 12:54:54 PDT 2013
On 06/18/2013 12:40 PM, Steven Schveighoffer wrote:
> On Tue, 18 Jun 2013 15:37:44 -0400, Charles Hixson
> <charleshixsn at earthlink.net> wrote:
>
>> (Sorry if this double posts. I'm having trouble getting through at
>> all.)
>>
>> How should I compare immutable ints to ensure that they are actually
>> equal?
>>
>> I was quite surprised to receive the following error message:
>>
>> cbt2.d(732): Error: function object.Object.opEquals (Object o) is not
>> callable using argument types (immutable(int))
>>
>> when I tried to assert that two values were equal. They were (should
>> be), indeed, immutable ints, but I'd prefer that I could check that
>> they were equivalent without printing them both out. (I'm having a
>> bit of trouble keeping my logic straight, so I'm trying to assert
>> many things that should obviously be true. And sometimes I've been
>> surprised.)
>>
>
> The error quoted above suggests you are trying to compare an object
> type with an int. Can you give some more context? You can do that,
> but you have to overload opEquals.
>
> -Steve
Thanks. That was the answer I couldn't see. I read it as complaining
about comparing two immutable ints, but
assert (nodes[root2.pg.pgNo] == root2.pg.pgNo);
should have read
assert (nodes[root2.pg.pgNo].pg.pgNo == root2.pg.pgNo);
--
Charles Hixson
More information about the Digitalmars-d-learn
mailing list