Short list with things to finish for D2
lws
invalid at email.com
Mon Dec 14 22:20:05 PST 2009
On 2009-11-20 02:18:03 -0800, Pelle Månsson <pelle.mansson at gmail.com> said:
> Andrei Alexandrescu wrote:
>> Bill Baxter wrote:
>>> On Thu, Nov 19, 2009 at 8:46 AM, Andrei Alexandrescu
>>> <SeeWebsiteForEmail at erdani.org> wrote:
>>>> grauzone wrote:
>>>>> What's with opSomethingAssign (or "expr1[expr2] @= expr3" in general)?
>>>>> opBinary doesn't seem to solve any of those.
>>>> opBinary does solve opIndex* morass because it only adds one function per
>>>> category, not one function per operator. For example:
>>>>
>>>> struct T {
>>>> // op can be "=", "+=", "-=" etc.
>>>> E opAssign(string op)(E rhs) { ... }
>>>> // op can be "=", "+=", "-=" etc.
>>>> E opIndexAssign(string op)(size_t i, E rhs) { ... }
>>>> }
>>>
>>> Rewrite
>>> a.prop = x; => a.opPropertyAssign!("prop", "=")(x);
>>>
>>> to that and we're really getting somewhere!
>>>
>>> --bb
>>
>> I swear I was thinking of that.
>>
>> Andrei
> Is this doable without a performance drop?
These are compile-time string mixin magic. It might make your code
compile slower, but the metaprogramming engine in D is already
1000000000x faster than C++.
More information about the Digitalmars-d
mailing list