Thread overview | |||||||
---|---|---|---|---|---|---|---|
|
September 15, 2015 Checking for Homogeneous Tuples | ||||
---|---|---|---|---|
| ||||
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 Re: Checking for Homogeneous Tuples | ||||
---|---|---|---|---|
| ||||
Posted in reply to Nordlöw | 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 Re: Checking for Homogeneous Tuples | ||||
---|---|---|---|---|
| ||||
Posted in reply to Nordlöw | 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 Re: Checking for Homogeneous Tuples | ||||
---|---|---|---|---|
| ||||
Posted in reply to Nordlöw | 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 Re: Checking for Homogeneous Tuples | ||||
---|---|---|---|---|
| ||||
Posted in reply to Meta | 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 ;) |
Copyright © 1999-2021 by the D Language Foundation