April 30, 2015 anonymous template predicates | ||||
---|---|---|---|---|
| ||||
I was wondering if there's a mechanism to make anonymous templates, e.g. given: enum Policy {A, B} alias List = TypeTuple!(...); instead of this: enum has_policy_A (T) = T.policy == Policy.A; alias Result = Filter!(has_policy_A, List); use something like this: Filter!(T => T.policy == Policy.A, List); I've tried templates that generate eponymous predicates from mixed-in strings but these have a number of caveats that limit their usability. |
April 30, 2015 Re: anonymous template predicates | ||||
---|---|---|---|---|
| ||||
Posted in reply to Vlad Levenfeld | On Thursday, 30 April 2015 at 21:01:36 UTC, Vlad Levenfeld wrote: > I was wondering if there's a mechanism to make anonymous templates, e.g. > > given: > enum Policy {A, B} > alias List = TypeTuple!(...); > > instead of this: > > enum has_policy_A (T) = T.policy == Policy.A; > alias Result = Filter!(has_policy_A, List); > > use something like this: > > Filter!(T => T.policy == Policy.A, List); > > I've tried templates that generate eponymous predicates from mixed-in strings but these have a number of caveats that limit their usability. The syntax is a bit ugly, but it can be done: http://dpaste.dzfl.pl/d17912ccdeb9 |
Copyright © 1999-2021 by the D Language Foundation