[Issue 9748] Wrong scope of templated nested functions in static foreach

d-bugmail at puremagic.com d-bugmail at puremagic.com
Thu Oct 3 00:48:49 PDT 2013


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



--- Comment #1 from Kenji Hara <k.hara.pg at gmail.com> 2013-10-03 00:48:48 PDT ---
More explicit test case:

template Tuple(T...) { alias T Tuple; }
extern(C) int printf(const char*, ...);
void main()
{
    //foreach (i; Tuple!(1, 2))
    {
        enum i = 1;
        uint j;
        void set()(int n) { j = n; printf("set1\n"); }
        set(i);
        printf("i = %d, j = %d\n", i, j);
        assert(j == i);
    }
    //foreach (i; Tuple!(1, 2))
    {
        enum i = 2;
        uint j;
        void set()(int n) { j = n; printf("set2\n"); }
        set(i);
        printf("i = %d, j = %d\n", i, j);
        assert(j == i);
    }
}

The second 'set' function template is not called.

-- 
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