<div dir="ltr">2013/5/28 Manu <span dir="ltr"><<a href="mailto:turkeyman@gmail.com" target="_blank">turkeyman@gmail.com</a>></span><br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div dir="ltr">So I've run into an expression I need to be able to implement std.simd properly for GDC/LDC.<div><br></div><div>Doesn't work:</div><div>  @attribute("target", T) void func(string T)(...);</div>

<div><br></div><div>In this case, currently, the UDA can't receive the template arg that was given to the function.</div><div><br></div><div>I require that attributes on templates be able to make use of the template args, since the template arg given may affect the attribute in some circumstances.</div>

</div>
</blockquote></div><br></div><div class="gmail_extra" style>This code works.</div><div class="gmail_extra" style><br></div><div class="gmail_extra" style><div class="gmail_extra">string attribute(string, string s) { return s; }</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">//@attribute("target", T) void func(string T)() {}</div><div class="gmail_extra">template func(string T)</div><div class="gmail_extra">{</div><div class="gmail_extra">
    @attribute("target", T) void func() {}</div><div class="gmail_extra">}</div><div class="gmail_extra"><br></div><div class="gmail_extra">void main()</div><div class="gmail_extra">{</div><div class="gmail_extra">
    alias f1 = func!"a";</div><div class="gmail_extra">    alias f2 = func!"b";</div><div class="gmail_extra">    pragma(msg, __traits(getAttributes, f1));   // "a"</div><div class="gmail_extra">
    pragma(msg, __traits(getAttributes, f2));   // "b"</div><div class="gmail_extra">    f1();</div><div class="gmail_extra">    f2();</div><div class="gmail_extra">}</div><div><br></div><div style>Kenji Hara</div>
</div></div>