[Issue 9971] eponymous function is not an lvalue

d-bugmail at puremagic.com d-bugmail at puremagic.com
Sat Apr 20 22:45:09 PDT 2013


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



--- Comment #4 from Ellery Newcomer <ellery-newcomer at utulsa.edu> 2013-04-20 22:45:05 PDT ---
(In reply to comment #3)
> 
> Sorry I don't see your point. Note, that second message is printed irrespective
> to instantiation and none of the messages is sensitive to what T is really is.

My point is that inside the struct template, T without any template
instantiation refers to the instantiated struct:

import std.traits;
void main() {
    alias T!(int) t1;
}

struct T(j) {
    T foo() {
        T t;
        return t;
    }
}
static assert(is(ReturnType!(T!int.foo) == T!int));
static assert(is(ReturnType!(T!double.foo) == T!double));

But in a templated function, T refers to the template:

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