Peter N Lewis wrote:
function doit( a: Integer ): Integer; begin return 1; end; type proc = function ( a: Integer ) : Integer; var a: proc; begin a := @doit; WriteLn( a( 10 ) ); // prints 1 end;
Perhaps BP does something equally weird.
I think it does something differently weird. ;-)
but than we would have to decide what to do if `object' is used in a forward declaration in one mode, but the proper declaration uses different mode.
This should be an error IMHO. Why should we allow such useless obscurities?
Agreed. Indeed, I would think it would be an error to forward declare (or define after a forward declare) any non-reference object.
Agreed. (Already the forward declaration should be an error.)
Frank