[fpc-pascal] alias a function + overload 'in'

David Emerson dle3ab at angelbase.com
Mon Dec 19 01:05:24 CET 2011


Thank you, Tomas, those are all excellent suggestions! I am glad I asked.

On Sun 18 Dec 2011, Tomas Hajny wrote:
> On 17 Dec 11, at 21:07, David Emerson wrote:
> 
> > two little questions
> > 
> > 1. Is it possible to make an alias to a function ... so rather than just 
> > re-calling with the same parameters, it's actually the same thing? like the 
way 
> > we can do, e.g., type natural = cardinal, or const GG = 6, but with a 
function?
>  .
>  .
> 
> There are multiple solutions possible:
> 
> 1) Making the functions public and creating the aliases as external:
> 
> procedure X; public name 'X';
> begin
>  WriteLn (1);
> end;
> 
> procedure Y; external name 'X';
> 
> begin
>  X;
>  Y;
> end.
> 
> 
> 2) Using procedural variables / constants:
> 
> type
>  TProc = procedure;
> 
> procedure X;
> begin
>  WriteLn (1);
> end;
> 
> const
>  Y: TProc = @X;
>  
> begin
>  X;
>  Y;
> end.
> 
> 
> 3) Using inlining:
> 
> procedure X;
> begin
>  WriteLn (1);
> end;
> 
> procedure Y; inline;
> begin
>  X;
> end;
>  
> begin
>  X;
>  Y;
> end.
> 
> Tomas
> 
> _______________________________________________
> fpc-pascal maillist  -  fpc-pascal at lists.freepascal.org
> http://lists.freepascal.org/mailman/listinfo/fpc-pascal
> 






More information about the fpc-pascal mailing list