On 02/17/2012 09:08 AM, Steven Schveighoffer wrote:

> What you are asking for is IFTI (Implicit Function Template
> Instantiation) on constructors, and is perfectly possible, but not
> implemented:
>
> http://d.puremagic.com/issues/show_bug.cgi?id=6082

What was the resolution for the case when the constructor is a template? I think that's why IFTI doesn't work for structs and classes in C++. Although, I can't get the following to compile in D anyway (that old and annoying error message again! :p):

  Error: no property 'opCall' for type 'deneme.B'

import std.conv;

class B
{
    string s;

    this(T)(T t)   // <-- Is the struct a template
                   //     or the constructor a template?
    {
        s = to!string(t);
    }
}

void main()
{
    auto b0 = B(42);
}

I wasn't around when the static opCall() was designed but it is probably the very first thing that bugged me about D. :) I want B(42) to be object construction, not opCall(), which is not even defined.

Ali

Reply via email to