[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