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