digitalmars.D.learn - Function default parameters
- Tim M (23/23) Nov 13 2008 I want to use the return value of another member function as the default...
- Jarrett Billingsley (2/4) Nov 13 2008 You can't, sorry. You'll just have to overload it.
- BCS (2/29) Nov 13 2008 Sorry. No sutch luck. The overload is what your stuck with.
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> 