> AFAIK default parameters can only be simple types, not complex types > like records.
Well... it certainly appears to be so... > Although, I did get the following program using a default > class parameter to compile and run. Kinda defeats the purpose (low overhead). I'll stick with two simple params with defaults. (The other way would be to write more overloaded functions, but that's cumbersome, and has overhead of its own) You know, it's just occurring to me that I wouldn't be saving anything anyway: any parameter with a default value must be passed-by-value, not by reference. So I'm passing two longints either way. Whether they're adjacent doesn't really make any difference at all. > (And I thought you could not have var default parameters). You can't. Here is a much shorter example: {$mode objfpc} procedure s (var a : longint = 0); begin inc (a); end; begin s; // Error: Variable identifier expected end. Perhaps it's a compiler bug that it doesn't complain about the indication of a var default parameter; however it definitely complains when you actually try to put that default parameter to use. I guess the default parameter part in the function header is simply being ignored. Thanks for your input, though! I've got a more definitive answer now. Although I still continue to wonder about constant records and record default params, even if they can't pass-by-ref. ~David. _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal