Thread overview
Can't create immutable type in template
Jul 15, 2012
Nick Gurrola
Jul 15, 2012
Jonathan M Davis
Jul 16, 2012
Timon Gehr
July 15, 2012
import std.stdio;

void main()
{
	writeln(typeid(Test!int));
}

template Test(T...)
{
	alias immutable(T[0]) Test;
}


This prints "int" instead of "immutable(int)" like I would expect. Is this a bug, or is that what is supposed to happen?
July 15, 2012
On Monday, July 16, 2012 01:38:05 Nick Gurrola wrote:
> import std.stdio;
> 
> void main()
> {
>         writeln(typeid(Test!int));
> }
> 
> template Test(T...)
> {
>         alias immutable(T[0]) Test;
> }

It looks like a bug to me.

- Jonathan M Davis
July 16, 2012
On 07/16/2012 01:38 AM, Nick Gurrola wrote:
> import std.stdio;
>
> void main()
> {
>     writeln(typeid(Test!int));
> }
>
> template Test(T...)
> {
>     alias immutable(T[0]) Test;
> }
>
>
> This prints "int" instead of "immutable(int)" like I would expect. Is
> this a bug, or is that what is supposed to happen?

This is a known issue.
http://d.puremagic.com/issues/show_bug.cgi?id=6966
The bug report also contains a simple workaround.