[fpc-pascal] why can't we define class operator for old fashion object type, but ok for 'advanced record' type?
Dennis
dec12 at avidsoft.com.hk
Wed Aug 15 11:12:14 CEST 2018
Michael Van Canneyt wrote:
>
>
> On Wed, 15 Aug 2018, Dennis wrote:
>
>> I was trying to use a generic class TDictionary<T> with type T. This
>> class has a method that compares a variable of T with another one.
>>
>> When I specialize a class using this TDictionary with a type:
>>
>> TSecurity = object
>> ....
>> end;
>>
>>
>> e.g. TNewDict = class(TDictionary<String, TSecurity>);
>>
>> it raise a compiler complaining that my TSecurity type has no
>> operator = defined.
>>
>> But when I try to add like this:
>>
>> TSecurity = object
>> ....
>> class operator = (constref aLeft, aRight: TSecurity ): Boolean;
>> //<---compiler Error: Procedure or Function expected
>>
>> end;
>
> Did you try creating an "old-fashioned" = operator ?
>
> Something like
>
> Operator = (l,r : TSecurity) z : boolean;
>
> begin
> // compare here
> end;
>
Just tried.
It complained: Fatal: Syntax error, "IMPLEMENTATION" expected but
"identifier OPERATOR" found
Dennis
More information about the fpc-pascal
mailing list