| 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
Permalink
Reply