On 05/14/2013 09:06 AM, timotheecour wrote:
On Tuesday, 14 May 2013 at 03:20:59 UTC, Kenji Hara wrote:
Currently conditional compilation would stop IFTI.
template foo(T)
{
static if (is(T == int))
void foo(T) {}
}
void main()
{
foo(1); // shouldn't work
}
Same as above, DIP40 should prevent following case.
template foo(T)
{
struct foo
{
static if (is(T == int))
this(T) {}
}
}
void main()
{
foo(1); // also should not work
}
Kenji Hara
I think that should be consistent with the deduction mechanism proposed
in the DIP:
No it is not. The DIP states "find all constructors".
foo is struct not in scope until template foo(T) is instantiated.