[Issue 1713] New: foreach index with tuples and templates fails
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Mon Dec 3 10:58:58 PST 2007
http://d.puremagic.com/issues/show_bug.cgi?id=1713
Summary: foreach index with tuples and templates fails
Product: D
Version: 2.008
Platform: PC
OS/Version: Linux
Status: NEW
Keywords: rejects-valid
Severity: normal
Priority: P2
Component: DMD
AssignedTo: bugzilla at digitalmars.com
ReportedBy: dhasenan at gmail.com
---
import std.stdio;
import std.traits;
import std.metastrings;
void main () {
pragma(msg, Multi!(Object, "toString")());
}
string Multi (T, string name) () {
foreach (i, method; __traits(getVirtualFunctions, T, name)) {
alias typeof(method) func;
// SingleMethod fails....
Single!(i)();
// but Foo succeeds
Foo!(ParameterTypeTuple!(func))();
}
return ``;
}
string Single (int idx)() { return ``; }
string Foo (U...) () { return ``; }
---
The error message given is:
Error: cannot evaluate Single() at compile time
Obviously the index is a compile-time constant, or I couldn't use it as a
template parameter. And the function without the template works, and giving a
literal constant works. So I don't know what's going on.
--
More information about the Digitalmars-d-bugs
mailing list