Re: [fpc-pascal] Can class function used in specialized class use intristic functions Low, High with generic type ?

2017-04-22 Thread Sven Barth via fpc-pascal
Am 22.04.2017 08:18 schrieb "Cyrax" :
> I think that this was the bug report and which you did fix back then :


Indeed it is :)

Regards,
Sven
___
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Re: [fpc-pascal] Can class function used in specialized class use intristic functions Low, High with generic type ?

2017-04-22 Thread Cyrax

On 20.04.2017 14:37, Sven Barth via fpc-pascal wrote:

Am 20.04.2017 13:02 schrieb "LacaK" :


Hi *,

I have some generic class:

generic T2DNumericArray = object(specialize T2DArray)
 public
   class function Truncate(Value: double): T; inline;
   ...

In class function Truncate I want check if supplied Value is in range of

T.

T will be always ordinal type (byte, integer) ... (I know this, but

compiler does not of course)


Can I use in :

class function T2DNumericArray.Truncate(Value: double): T;
begin
   if Value > High(T) then
 Result := High(T)
   else if Value < Low(T) then
 Result := Low(T)
   else
 Result := Value;
end;

I understand, that from compiler POV T can be any type, so High() and

Low() can be invalid, but I wonder if there is any way how to solve this.

The compiler will use dummy values while parsing the generic, but during
specialization it will use the correct ones. Though it might be that you'd
need 3.1.1 for it (dont know right now when I had fixed that).

Regards,
Sven



___
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal



I think that this was the bug report and which you did fix back then : 



___
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal