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 ThingSorry. No sutch luck. The overload is what your stuck with.
Nov 13 2008