Thread overview
Checking for Homogeneous Tuples
Sep 15, 2015
Nordlöw
Sep 15, 2015
John Colvin
Sep 15, 2015
Adam D. Ruppe
Sep 15, 2015
Meta
Sep 15, 2015
Nordlöw
September 15, 2015
How do I check that all the elements of a std.typecons.Tuple all fulfil a specific predicate, in my case all have a specific type:

Something like

    import std.typecons : isTuple;
    enum isTupleOf(T, E) = isTuple!T && is(MAGIC(T, E));


September 15, 2015
On Tuesday, 15 September 2015 at 16:54:22 UTC, Nordlöw wrote:
> How do I check that all the elements of a std.typecons.Tuple all fulfil a specific predicate, in my case all have a specific type:
>
> Something like
>
>     import std.typecons : isTuple;
>     enum isTupleOf(T, E) = isTuple!T && is(MAGIC(T, E));

std.meta.allSatisfy!(SomePredicateTemplate, T.Types);
September 15, 2015
If it is a tuple of values too, you could just try to form an array out of it: `static if (__traits(compiles, [your_tuple]))`. But allSatisfy might be better.

For the predicate there, remember it needs to take a template argument.
September 15, 2015
On Tuesday, 15 September 2015 at 16:54:22 UTC, Nordlöw wrote:
> How do I check that all the elements of a std.typecons.Tuple all fulfil a specific predicate, in my case all have a specific type:
>
> Something like
>
>     import std.typecons : isTuple;
>     enum isTupleOf(T, E) = isTuple!T && is(MAGIC(T, E));

I made a pull request for this a long time ago but it was rejected.

https://github.com/D-Programming-Language/phobos/pull/1672
September 15, 2015
On Tuesday, 15 September 2015 at 17:41:07 UTC, Meta wrote:
> I made a pull request for this a long time ago but it was rejected.
>
> https://github.com/D-Programming-Language/phobos/pull/1672

I'll try again because it's needed here

https://github.com/D-Programming-Language/phobos/pull/3395

;)