L505 wroteWell you are nitpicking my email :-).
Maybe. I'm known for doing that sometimes. I also even tend to write "SizeOf (byte)" instead of "1".
I'm not confused at all - the docs are.
Are they?
"My" Free Pascal: Reference Guide states:
|10.3.6 Array of const
[...]
|Inside the procedure body, the array of const is equivalent to an open |array of TVarRec:
|
|Procedure Testit (Args: Array of const);
|
|Var I : longint;
|
|begin
[...]
| For i:=0 to High(Args) do
| begin
| write ('Argument ',i,' has type ');
| case Args[i].vtype of
| vtinteger :
| Writeln ('Integer, Value :',args[i].vinteger); | vtboolean :
| Writeln ('Boolean, Value :',args[i].vboolean); | vtchar :
| Writeln ('Char, value : ',args[i].vchar); | vtextended :
| Writeln ('Extended, value : ',args[i].VExtended^); | vtString :
| Writeln ('ShortString, value :',args[i].VString^); [...]
Show quoted text 5 lines
All I was asking was why specifically in array of const's
case, the docs did not make it clear I could pass multiple types in
the same call. If you look in the examples in the docs page, all the
examples show the programmer passing arguments of the same type in
one call.
That's true. But looking at - for instance - SysUtils.Format should make it clear, that an "array of const" is not limited to that.
They only make it clear that you can pass multiple types in separate
calls, not in the same call.
So you propose, the examples and maybe the text
|This is a special case of the Open array construction, where it is |allowed to pass any expression in an array to a function or procedure. ^^^^^^^^^^^^^^
should be changed then? :-)
Show quoted text 5 lines
> And you still can't just pass two arguments when the subroutine
> expects only one
Isn't this exactly what array of const is for? It allows you to use
anywhere from 1 to unlimited parameters.
Yes. Still, it's only one argument. You can't just suddenly pass two "array of const", can you?
Vin"Nitpicker"zent.