On Wed, 27 Jul 2016, Jonas Maebe wrote:


Michael Van Canneyt wrote on Wed, 27 Jul 2016:

On Wed, 27 Jul 2016, Maciej Izak wrote:


TNullable<T: record> = proxy record
...

looks good for me, even better than pure record, the context is more clear.

Yes. Exactly what Jonas wanted to achieve, I suppose.

A bitpacked or packed record still behaves like a regular record. If does not behave like a record, it should not be called a record.

Well, it can be a special kind of type helper.

Symply extend the syntax for type helper with a new word.


Additionally, the @@/@ operator thing is inconsistent with how e.g. ansistrings or dynamic arrays work: @ansistringvar does not get you the address of the first character, but of the variable itself. Similarly, there is no @@ansistringvar to get the address of the ansistring variable itself rather than of the first character, even though the 'value' of an ansistring starts at that first character.

Procedure variables in Turbo Pascal (and Delphi) are the only type for which this approach was ever was used, and given that they didn't use it anymore later on may indicate that they also thought it was not a very good idea in hindsight. Let alone that we would also start accepting @@@-expressions (https://github.com/maciej-izak/PascalSmartPointers/blob/master/tests/tdefault21.pp ).

Why not introduce an address operator ?

operator @ (T : MyType) : Pointer;

Michael.
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel

Reply via email to