Right now there are lot of Phobos functionality that fully expects A.init to return just that - a default initialized value of type A.

Now consider:
struct A
{
    int i;
    void init(int K)
    {
        //blah
    }
}

Then:
map!"a.i"([A(1), A(2), A(3)]);

for me explodes with :
std\algorithm.d(382): Error: function test.A.init (int K) is not callable using argument types ()
std\algorithm.d(382): Error: expected 1 function arguments, not 0
due to this line in std.algorithm:
alias typeof(_fun(.ElementType!R.init)) ElementType;

Any way to circumvent this name lookup oddity and get to built-in property?
If there is, shouldn't we use it throughout Phobos?

The issue is not a theoretical one - it severely limits usability of my pull request (not posted because of this) that makes dirEntries return proper InputRange of DirEntry . Namely, DirEntry happen to define just such a function (init).

--
Dmitry Olshansky

Reply via email to