is(x = module) vs. __traits(isModule, x)
Steven Schveighoffer
schveiguy at gmail.com
Thu Oct 8 14:19:08 UTC 2020
On 10/8/20 10:08 AM, H. S. Teoh wrote:
> On Thu, Oct 08, 2020 at 12:54:49PM +0000, Adam D. Ruppe via Digitalmars-d wrote:
>> On Thursday, 8 October 2020 at 10:11:59 UTC, Max Samukha wrote:
>>> Wrapping __traits in templates is a necessity if you want to use
>>> them for anything interesting (such as passing them to higher order
>>> functions):
>>
>> I kinda wish we had a template lambda.
>
> Me too!!! I've been avoiding to use Filter, et al, because I'm forced
> to declare a bunch of helper templates just for trivial predicates. If
> lambda syntax could be extended to templates, that would make it much
> nicer to use.
We recently had the AliasSeq pattern recognized by the compiler and it
no longer stores a template for it.
can we do the same thing for __traits? In other words, it can recognize
the pattern:
template foo(...)
{
alias foo = __traits(...);
}
And avoid setting up templates for this.
I think the AliasSeq pattern still runs through the template machinery,
which is not a good thing. But perhaps this can be addressed orthogonally.
-Steve
More information about the Digitalmars-d
mailing list