E2193 Standard-Funktion Slice nur als Argument für offene Arrays erlaubt (Delphi)

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Fehler- und Warnungsmeldungen (Delphi)

Es wurde versucht, ein Array-Slice an ein Array mit fester Größe zu übergeben. Array-Slices können nur als Parameter für offene Arrays übergeben werden.


program Produce;

  type
    IntegerArray = array [1..10] OF Integer;

  var
    SliceMe : array [1..200] OF Integer;

  procedure TakesArray(x : IntegerArray);
  begin
  end;

begin TakesArray(SLICE(SliceMe, 5));
end.

In diesem Beispiel wird der Fehler ausgelöst, weil TakesArray ein Array mit fester Größe erwartet.


program Solve;

  type
    IntegerArray = array [1..10] OF Integer;

  var
    SliceMe : array [1..200] OF Integer;

  procedure TakesArray(x : array of Integer);
  begin
  end;

begin TakesArray(SLICE(SliceMe, 5));
end.

In diesem Beispiel wird der Fehler dagegen nicht ausgelöst, weil TakesArray ein offenes Array als Parameter annimmt.