[fpc-pascal] Make a distinct pointer type
    Michael Van Canneyt 
    michael at freepascal.org
       
    Wed May 31 16:20:26 CEST 2023
    
    
  
On Wed, 31 May 2023, Hairy Pixels via fpc-pascal wrote:
> What's the best way to make a pointer type which is distinct so that the following snippet would give an error. I thought "type pointer" would do it but it doesn't seem to work.
>
> type
>  PA = type pointer;
>  PB = type pointer;
>
> var
>  a: PA;
>  b: PB;
> begin
>  a := b; // should give an error!
> end;
Type aliases are always assignment compatible.
As far as I know, there is no way to do what you want with just 'pointer'.
This will give an error:
Type
   RA = record end;
   RB = record end;
   PA = ^RA;
   PB = ^RB;
var
   a: PA;
   b: PB;
begin
   a := b;
end.
Michael.
    
    
More information about the fpc-pascal
mailing list