Let this() figure out T implicitly?
Ali Çehreli
acehreli at yahoo.com
Fri Feb 17 15:04:01 PST 2012
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
More information about the Digitalmars-d-learn
mailing list