Am 12.10.2011 16:46, schrieb Michael Schnell:
On 10/12/2011 04:23 PM, Sven Barth wrote:

There was some discussion about how to handle var parameters, but I
don't remember the outcome anymore. AFAIK Delphi issues a compile
error (I don't know for sure though).
Options are:

- compiler error
- compiler warning
- runtime exception
- conversion to and fro
- just passing the pointer (making creating an intersexual string easy)


We will see :)

So... now you got me to start my Delphi XE and I then noticed that I had already written a small test project to test this ^^

Here is the code:

=== source begin ===

program strvartest;

{$APPTYPE CONSOLE}

uses
  SysUtils;

type
  CyrillicString = type AnsiString(1251);
  LatinString = type AnsiString(1252);
  TestString = type AnsiString(65001);

procedure Test(var aStr: CyrillicString);
begin

end;

var
  s: LatinString;
begin
  s := 'Foo';
  Test(s);
end.

=== source end ===

Result:
[DCC Fehler] strvartest.dpr(22): E2033 Die Typen der tatsächlichen und formalen Var-Parameter müssen übereinstimmen

For those that don't speak German (so shouldn't be you, Michael) a free translation: [DCC Error] strvartest.dpr(22): E2033 The types of the actual and formal var-paramaters have to match

So at least Delphi uses the compiletime error approach. So it should be likely that FPC follows that approach.

Regards,
Sven
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to