[fpc-pascal] Default value for an open array
It's previously been pointed out to me that a declaration such as procedure OutputWriteF(const str: widestring; values: array of const; fg: TColor= clBlack; bg: TColor= clDefault); can't be rewritten type owfArray: array of const; procedure OutputWriteF(const str: widestring; values: owfArray; fg: TColor= clBlack; bg: TColor= clDefault); since this would make the parameter into a dynamic rather than an open array. I'm entirely happy to accept that now that I understand it. However, given a declaration of that form, is it possible to define a default parameter of [] so that OutputWriteF('Test, no params\n') is valid? -- Mark Morgan Lloyd markMLl .AT. telemetry.co .DOT. uk [Opinions above are the author's, not those of his employers or colleagues] ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Default value for an open array
However, given a declaration of that form, is it possible to define a default parameter of [] so that OutputWriteF('Test, no params\n') is valid? Not for open arrays, but you can write an overloaded version without the open array argument that calls the version with the open array parameter passing an empty array, or an array initialised with whatever default values you want: interface procedure OutputWriteF(const str: widestring); overload; procedure OutputWriteF(const str: widestring; values: array of const); overload; implementation procedure OutputWriteF(const str: widestring); begin OutputWriteF(str, [clBlack, clDefault]); end; procedure OutputWriteF(const str: widestring; values: array of const); begin ... end; HTH Constantine. ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Default value for an open array
kyan wrote: However, given a declaration of that form, is it possible to define a default parameter of [] so that OutputWriteF('Test, no params\n') is valid? Not for open arrays, but you can write an overloaded version without the open array argument that calls the version with the open array parameter passing an empty array, or an array initialised with whatever default values you want: Thanks, good point and adequate workaround. -- Mark Morgan Lloyd markMLl .AT. telemetry.co .DOT. uk [Opinions above are the author's, not those of his employers or colleagues] ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal