turn range into tuple ?

Jonathan M Davis newsgroup.d at jmdavisprog.com
Thu Jun 28 09:47:07 UTC 2018


On Thursday, June 28, 2018 09:26:10 Flaze07 via Digitalmars-d-learn wrote:
> On Thursday, 28 June 2018 at 08:52:33 UTC, Simen Kjærås wrote:
> > On Thursday, 28 June 2018 at 08:36:54 UTC, Flaze07 wrote:
> >> is there some sort of ways to turn range into tuple ? ( an
> >> array preferably )
> >> e.g
> >> uint[] arr = [ 10, 20, 30 ];
> >> auto tup = rangeToTup( arr );
> >> assert( tup[ 0 ] == 10 );
> >> assert( tup[ 1 ] == 20 );
> >> assert( tup[ 2 ] == 30 );
> >
> > https://dlang.org/phobos/std_meta#aliasSeqOf
> >
> > --
> >
> >   Simen
>
> what about during runtime ?

Ranges in general have an arbitrary length, whereas tuples have a fixed
length that is known at compile time. So, it really doesn't make sense to
convert a range to a tuple. You can create function that takes the first x
number of elements of a range (probably throwing if the range is too short)
and create a tuple from those elements, but it would be a bit of a pain to
do, and it would generally be a pretty weird thing to do. A dynamic array
would make a lot more sense than a tuple.

- Jonathan M Davis




More information about the Digitalmars-d-learn mailing list