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

Artur Skawina art.08.09 at gmail.com
Tue Aug 7 02:47:42 PDT 2012


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


More information about the Digitalmars-d-learn mailing list