digitalmars.D.learn - Function default parameters
- "Tim M" <a b.com> Nov 13 2008
- "Jarrett Billingsley" <jarrett.billingsley gmail.com> Nov 13 2008
- BCS <ao pathlink.com> Nov 13 2008
I want to use the return value of another member function as the default
for a parameter. I could just overload it but I would prefer to do it like:
module test;
class Thing
{
char[] getString(uint len = this.strLen())
{
char[] a = new char[len];
return a;
}
uint strLen()
{
return 6;
}
}
int main()
{
Thing t = new Thing;
char[] abc = t.getString;
return 0;
}
test.d(6): Error: 'this' is only defined in non-static member functions,
not Thing
Nov 13 2008
On Thu, Nov 13, 2008 at 8:34 PM, Tim M <a b.com> wrote:I want to use the return value of another member function as the default for a parameter. I could just overload it but I would prefer to do it like:
You can't, sorry. You'll just have to overload it.
Nov 13 2008
Reply to tim,I want to use the return value of another member function as the default for a parameter. I could just overload it but I would prefer to do it like: module test; class Thing { char[] getString(uint len = this.strLen()) { char[] a = new char[len]; return a; } uint strLen() { return 6; } } int main() { Thing t = new Thing; char[] abc = t.getString; return 0; } test.d(6): Error: 'this' is only defined in non-static member functions, not Thing
Sorry. No sutch luck. The overload is what your stuck with.
Nov 13 2008









"Jarrett Billingsley" <jarrett.billingsley gmail.com> 