[fpc-pascal] Is it possible to redefine FreePascal types?

Ewald bloody.middlefinger at yellowcouch.org
Wed Nov 21 20:46:00 CET 2012

Once upon a time, on 11/21/2012 08:37 PM to be precise, Frank Church said:
> Lets say I am using some string variables, but I want to ensure that
> there are no typing errors in some code I am using.
> so I define newString as a new string type and declare a variable as
> ANewString.
> That way if I create a function such as functionUsingNewString(a:
> newString) and I pass a plain string as a parameter to
> functionNewString the compiler declares an error.
> If c is string and b is newString and I do b := c the compiler should
> generate an error unless I do b := newString(c);
> Is this possible?
If you declare something like

    NewString = Record
        Data: Array of Char;

And a function:
    Function ToNewString(a: String): NewString;
        SetLength(Result.Data, Length(a));
        Move(a[1], Result.Data[0], Length(a) * SizeOf(Char));

; The compiler should generate an error when you try to typecast a
String to a NewString.


More information about the fpc-pascal mailing list