How to implement predicates for Filter!(Pred, Tuple)
David Nadlinger
see at klickverbot.at
Fri Nov 11 09:35:21 PST 2011
To be more precise, Tobias, my PApply!() would allow you to define your
predicate »unnested«, i.e. just as a template with two parameters and
then do StaticFilter!(PApply(IsEqual, 5), …).
But yes, not being able to »chain« template instantiation is quite a
limitation of the D grammar when it comes to »higher-order templates«
(at least that's what I like to call them). In some situations, you have
no other options than to define an Instantiate!() template, see e.g. the
Gist I posted.
David
On 11/11/11 6:25 PM, David Nadlinger wrote:
> On 11/11/11 6:20 PM, Timon Gehr wrote:
>> This is a sketch of how I would approach your problem. The "Curry"
>> template automatically creates the nested template version from an
>> unnested one. You are then allowed to use both IsEqual!(val) and
>> IsEqual!(val1, val2).
>> […]
>
> See also: https://gist.github.com/1191885#L27
>
> Reminds me that I really have to put together a std.meta proposal – if I
> would only find time to do so…
>
> David
More information about the Digitalmars-d-learn
mailing list