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

Reply via email to