On Tue, Sep 28, 2010 at 16:52, Robert Jacques <[email protected]> wrote:
>
> On Tue, 28 Sep 2010 06:10:56 -0400, Shin Fujishiro <[email protected]> wrote:
>
>> "Robert Jacques" <[email protected]> wrote:
>>>
>>> The meta namespace has been proposed as a possible replacement for
>>> __traits, etc. i.e. meta.compiles() vs __traits(compiles, ). So a
>>> different module name might be appropriate.
>>
>> I'll consider.  BTW, will this really happen, or rather is it necessary?
>> IIRC, the proposal was against the ugly syntax.  I think all the
>> existing __traits except compiles could be wrapped with library
>> templates with syntactic sanity and added flexibility.  For example:
>>
>>
>> template getMember(alias Scope, string member)
>> {
>>    alias Identity!(__traits(getMember, Scope, member)) getMember;
>> }
>>
>> // This overload does partial application.  Useful for staticMap etc.
>> template getMember(alias Scope)
>> {
>>    template getMember(string member)
>>    {
>>        alias .getMember!(Scope, member) getMember;
>>    }
>> }

Looking at it, most traits seems wrappable in this way, except 'compiles'.

[meta]
> I don't know if this is on the road map or not, I just remember a decently 
> serious discussion about it. I do like your solution, although some __traits 
> would require tuples of aliases and for aliases to support types in addition 
> to expressions. Since we'd hopefully be able to do both some time in the 
> future, no reason not to start a limited form of it now. Also, since things 
> like getMember are fairly generic for the public namespace, they should 
> probably be put into a holding struct (e.g. meta). This could also apply to 
> your staticMap, staticReduce, etc. (i.e. meta.map and meta.reduce). This has 
> the advantage of using with(meta){ } when large blocks of metaprogramming are 
> written.


And I find it easier on the eye to see meta.filter than staticFilter
(even though I'm using the latter in my code).


Philippe



std.compiletime?
_______________________________________________
phobos mailing list
[email protected]
http://lists.puremagic.com/mailman/listinfo/phobos

Reply via email to