[Issue 7529] IFTI does not support template argument dependent template alias instances as parameter types

d-bugmail at puremagic.com d-bugmail at puremagic.com
Fri Feb 17 07:21:00 PST 2012


http://d.puremagic.com/issues/show_bug.cgi?id=7529



--- Comment #10 from timon.gehr at gmx.ch 2012-02-17 07:20:59 PST ---
If you think it is invalid you misunderstand the issue. This is about extending
IFTI so that it can match templated aliases.

template Alias(T){ alias Foo!T Alias;}

void foo(T)(Alias!T x){ pragma(msg, T); }

foo(Foo!int); // prints 'int'

What effectively would need to be done at the compiler side:

- If a template parameter type is a template, check whether it is an eponymous
alias template (like template Alias(T){ alias Foo!T Alias; }
- If so, expand the template without knowing the type it is instantiated with

void foo(T)(Alias!T x){ ... } => void foo(T)(Foo!T x){ ... }

This is always a valid transformation for eponymous alias templates.

This does not introduce any dependencies across parameters.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------


More information about the Digitalmars-d-bugs mailing list