Summary: Template alias default value cannot be template
           Product: D
           Version: 2.019
          Platform: PC
        OS/Version: Windows
            Status: NEW
          Keywords: rejects-valid
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: [EMAIL PROTECTED]
        ReportedBy: [EMAIL PROTECTED]

Simple case:

void foo(T)()

struct f(alias func=foo!(int))

void main()
  f!() myf;

Error in 1.036:
Error: foo!(int) is not a symbol

Error in 2.019:
testtemplatealias.d(5): Error: foo!(int) is used as a type
testtemplatealias.d(11): template instance f!() does not match template
declaration f(alias func = foo!(int))
testtemplatealias.d(11): Error: f!() is used as a type
testtemplatealias.d(11): variable testtemplatealias.main.myf voids have no

Workaround is to alias the default parameter before using as the default

alias foo!(int) defaultFoo;

struct f(alias func=defaultFoo)


Reply via email to