[Issue 1464] New: "static" foreach breaks CTFE
Reiner Pope
some at address.com
Fri Aug 31 15:03:25 PDT 2007
BCS wrote:
> d-bugmail at puremagic.com wrote:
>> http://d.puremagic.com/issues/show_bug.cgi?id=1464
>>
>> Summary: "static" foreach breaks CTFE
>> Product: D
>> Version: 2.003
>> Platform: PC
>> OS/Version: Windows
>> Status: NEW
>> Keywords: rejects-valid
>> Severity: normal
>> Priority: P2
>> Component: DMD
>> AssignedTo: bugzilla at digitalmars.com
>> ReportedBy: reiner.pope at gmail.com
>>
>>
>> The following code gives compile-time error, "cannot evaluate gen() at
>> compile
>> time." Removing the "i" from the foreach fixes this.
>>
>> template Tuple(T...)
>> {
>> alias T val;
>> }
>>
>> alias Tuple!(int) Tup;
>>
>> string gen()
>> {
>> foreach (i, type; Tup.val)
>> {
>> }
>> return null;
>> }
>>
>> string text = gen();
>>
>>
>
>
> That compiles at all? in the 1.x versions you can't have an alias of a
> tuple in a template other than if the tuple name is the same as the name
> of the template (It's a known bug, not a language restriction)
It's aliasing the template instantiation, not the tuple. It should
compile in 1.x as well as 2.x.
More information about the Digitalmars-d-bugs
mailing list