Why __traits(compile,...) fails here?

Zhenya zheny at list.ru
Tue Aug 7 03:42:05 PDT 2012


On Tuesday, 7 August 2012 at 09:47:58 UTC, Artur Skawina wrote:
> On 08/07/12 09:51, Zhenya wrote:
>> import std.stdio;
>> 
>> template isType(alias s)
>> {
>>     enum isType = !__traits(compiles,mixin("typeof(s)"));
>> }
>> 
>> void main()
>> {
>> //    writeln(isType!int);// Error: template instance 
>> isType!(int) isType!(int) does not match template declaration 
>> isType(alias s)
>>     writeln(__traits(compiles,mixin("typeof(int)")));//write: 
>> false
>> }
>
> Template alias parameters do not accept built-in types.
> 
>    template isType(s) /*...*/
>
> would compile.
>
> artur

Thank you)




More information about the Digitalmars-d-learn mailing list