On 02/18/2012 12:04 AM, Ali Çehreli wrote:
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?

The constructor it is, and B is a class, not a struct.


     {
         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


Why? What useful semantics would that have for classes?

Reply via email to