On Sat, 04 Jun 2011 08:11:01 -0400, simendsjo <simen.end...@pandavre.com> wrote:

On 04.06.2011 14:02, simendsjo wrote:
The template implementation works on low numbers, but not on 1000
(haven't checked when it fails). It gives me the following error:
euler1.d(23): Error: template instance
euler1.SumMultiple3Or5(499LU,Below,57918LU) recursive expansion

Ehem.. Guess it fails at recursion depth 500 :)
This is perhaps even documented somewhere? Or is it possible to change the value?

Not sure if it's documented somewhere, but I think it is dmd's attempt to avoid infinite template recursion. Preventing infinite recursion is equivalent to solving the halting problem, so I don't think it's possible to solve perfectly.

You can likely "fix" it by modifying the source for dmd.

-Steve

Reply via email to