The Anh Tran wrote: > static double[N] dd = void; dd is not a compile-time constant. > static auto tmp = f!(N).fn(dd); The initializer of tmp must be a compile-time constant, but since dd is not a compile-time constant, you can't use CTFE on fn.