http://d.puremagic.com/issues/show_bug.cgi?id=6475
Summary: template identifier is not a member of alias Product: D Version: D2 Platform: Other OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: nob...@puremagic.com ReportedBy: ellery-newco...@utulsa.edu --- Comment #0 from Ellery Newcomer <ellery-newco...@utulsa.edu> 2011-08-11 20:07:06 PDT --- inside this issue is a forward reference error, so it might just be a dup of some other issue, but here it is anyways. A workaround exists and is expressed in the code. dmd32 2.054 the code: struct SignalOnChange(L...) { static struct Inner(IndexedBy){ static auto r(){ Inner i; return i; } } } enum UseWhatWorks = false; struct ContainerArgs(X...){ static if(UseWhatWorks){ alias typeof(X[0].Inner!(int).r()) Signals; }else{ alias X[0] Signals0; alias Signals0.Inner!(int) Signals; } } class MIC(RawValue, Args...){ alias ContainerArgs!(Args).Signals NormSignals; } void main(){ alias MIC!(int, SignalOnChange!(int,int)) C; } the fireworks: error11.d(26): Error: alias error11.ContainerArgs!(SignalOnChange!(int,int)).ContainerArgs.Signals0 template identifier Inner is not a member of alias Signals0 error11.d(26): Error: alias error11.ContainerArgs!(SignalOnChange!(int,int)).ContainerArgs.Signals0 template identifier Inner is not a member of alias Signals0 error11.d(27): Error: no property 'Inner!(int)' for type 'SignalOnChange!(int,int)' error11.d(27): Error: alias error11.ContainerArgs!(SignalOnChange!(int,int)).ContainerArgs.Signals cannot alias an expression __error error11.d(32): Error: template instance error11.ContainerArgs!(SignalOnChange!(int,int)) error instantiating error11.d(36): instantiated from here: MIC!(int,SignalOnChange!(int,int)) error11.d(32): Error: forward reference to 'Signals0.Inner!(int)' -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------