How can I fix the template declaration to not error in that case?
If you want to have a template parameter that can be anything, including a a symbol or a built in type, you can use this ugly workaround:
template foo(bar...) if(bar.length == 1) { enum foo = 1; }