tuple slicing operator

Vlad Levenfeld via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sat Aug 9 13:32:03 PDT 2014


On Saturday, 9 August 2014 at 19:26:46 UTC, Meta wrote:
> (which is why z[] gives you a type of (int, int, int) instead 
> of Tuple!(int, int, int)).

That makes sense, and on second thought it wouldn't make sense to 
use a tuple as a range because it's not guaranteed to have only 
one element type. So, I can see how expanding the tuple is the 
reasonable thing to do.

> For one thing, any type can overload the [] operator, so x[] 
> can mean anything.

True, I just meant insofar as convention based on what I had (up 
until the tuples) thought to be the typical usage.

> Usually slices *are* ranges, but they don't have to be, and 
> it's not a good assumption to make.

Are there any specific cases where they're not?

> In generic code, you should always use template constraints and 
> static if along with the appropriate traits to check facts 
> about a type.

Good advice, I think I will stick to this. My approach was 
sliding into 'programming by convention'.


More information about the Digitalmars-d-learn mailing list