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