[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