Hi *,

I have some generic class:

generic T2DNumericArray<T> = object(specialize T2DArray<T>)
    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.

Thanks

-Laco.

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

Reply via email to