dmd 2.049 bug with take and SList?

Nick Treleaven nospam at
Thu Oct 14 07:14:14 PDT 2010

On Thu, 14 Oct 2010 07:18:48 +0000, Lars T. Kyllingstad wrote:

>>> You are creating an infinite recursion of templates.  For an array the
>>> return type of take() is the same array type.  For other ranges, the
>>> return type of take() is Take!Range.  So when you instantiate pyramid!
>>> Range, it instantiates pyramid!(Take!Range), and then
>>> pyramid!(Take!(Take! Range)), and so on ad infinitum.

OK, makes sense.

>>> A solution could be to make take!(Take!Range)() just return another
>>> Take! Range.  I can look into that, but you should file a bug report
>>> on it so it's not forgotten.
>>> -Lars
> Fixed.


More information about the Digitalmars-d-learn mailing list