On Wed, 17 Aug 2011 10:56:02 -0400, Mehrdad <wfunct...@hotmail.com> wrote:

On 8/17/2011 7:14 AM, Steven Schveighoffer wrote:
Casting is actually the correct solution.

if(auto irange = cast(InputRangeObject)collection)
{
   // now you can use irange
   if(collection.empty) // success!
   {
      ...
   }
}
The correct solution? It doesn't even compile. (See my last post, which was after the one you replied to.)

Oh, right, InputRangeObject is a template. Sorry, I forgot about that aspect.

So actually, that isn't possible if you are returning Object, you need to return the correct InputRange(T) type.

(in this case InputRange!int)

Another good reason to avoid class-based ranges :)

-Steve

Reply via email to