construct range from tuple?

Jonathan M Davis via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sun Sep 18 02:53:54 PDT 2016


On Sunday, September 18, 2016 09:36:13 e-y-e via Digitalmars-d-learn wrote:
> Use std.range's 'only' function [1], it takes variadic arguments
> of the same type and constructs a range consisting of them.
>
> Example:
>
>      import std.meta : AliasSeq;
>      import std.range : only;
>      import std.algorithm.comparison : equal;
>
>      alias names = AliasSeq!("Alice", "Bob");
>
>      auto range = only(names, "Chuck");
>      assert(range.equal(["Alice", "Bob", "Chuck"]));

You can also just stick them in an array. e.g.

auto namesArr = [names];

But obviously, that allocates memory. So, whether using only or allocating
an array would make more sense depends on what you want to do with the
resulting range.

- Jonathan M Davis



More information about the Digitalmars-d-learn mailing list