Inline variable declarations

Top  Previous  Next

New features since Delphi 7 > Inline variable declarations

Since Delphi 10.3 variables can be declared not only at the beginning of a routine, but inline too.

 

Previously, variables always had to be declared in a var block, either globally or at the head of a routine. . For example:

 

procedure Test;

var

  I: Integer;

begin

  I := 22;

  ...

 

Since Delphi 10.3. variables also may be declared inside of a code block, either with an explicit type or with an implicit type:

 

 

procedure Test;           procedure Test;   

begin                     begin             

  var I: Integer;           var I := 22;    

  ...                       ...             

                                          

 

Delphi2Cpp converts this to:

 

 

void Test()               void TestAuto()   

{                         {                 

  int I = 22;               auto I = 22;    

  ...                       ...             

                                          

 

Similarly, constants can now also be defined inline:

 

 

begin

  const C1: Integer = 10;

  const C2 = 10;

 

->

 

{

  const int C1 = 10;

  auto C2 = 10;

 

 

No distinction is made here between C++98 and C++11. Auto variable and constant declarations have to be manually corrected for C++98.

 

 

The rules for scoping local variables in C++ are exactly the same as inline variables in Delphi, so Delphi2cpp doesn't need to use any special tricks here. This also applies to variables in for loops:

 

  var total := 0;

  for var I: Integer := 1 to 10 do

    Inc (total, I);

 

->

 

  auto total = 0;

  for(int I = 1; I <= 10; I++)

  {

    total += I;

  }

 

 

 

 

 

 



This page belongs to the Delphi2Cpp Documentation

Delphi2Cpp home  Content