Is this a bug? `static if` fails silently.

John Colvin via Digitalmars-d digitalmars-d at puremagic.com
Tue Nov 4 01:56:53 PST 2014


On Tuesday, 4 November 2014 at 09:54:44 UTC, John Colvin wrote:
> On Tuesday, 4 November 2014 at 09:07:10 UTC, deadalnix wrote:
>> On Tuesday, 4 November 2014 at 09:00:12 UTC, Meta wrote:
>>> struct Test(T)
>>> {
>>> 	static if (is(typeof(T) == int))
>>> 	{
>>> 		pragma(msg, "test");
>>> 		
>>> 		this(T t)
>>> 		{
>>> 			this.t = t;
>>> 		}
>>> 	}
>>> }
>>>
>>> void main()
>>> {
>>>       //Nothing is printed
>>> 	Test!int t;
>>> }
>>>
>>> Didn't this code used to failed at the point of `typeof(T)`? 
>>> Has this changed since previous releases?
>>
>> It is not static if, it is is. Is is defined as false for 
>> invalid types.
>
> a std.traits.TypeOf that errors out on non-types would be nice.

woops, ignore me.


More information about the Digitalmars-d mailing list