equivariant functions

Bill Baxter wbaxter at gmail.com
Wed Oct 15 12:36:36 PDT 2008


On Thu, Oct 16, 2008 at 4:10 AM, Andrei Alexandrescu
<SeeWebsiteForEmail at erdani.org> wrote:
> Bill Baxter wrote:
>>
>> Hmmm, looking at this:
>>
>> class Owner
>> {
>>  const?(A) a() const?{...}
>>  const?(B) b() const?{...}
>>  const?(C) c() const?{...}
>>  const?(D) d() const?{...}
>>  const?(E) e() const?{...}
>>  const?(F) f() const?{...}
>>  const?(G) g() const?{...}
>>  const?(H) h() const?{...}
>>  const?(I) i() const?{...}
>>  const?(J) j() const?{...}
>> }
>>
>> makes me think if we go with that syntax, Andrei is sooner or later
>> going to complain about his D code asking him too many questions.  :-)
>> Eh, I guess he can edit the emacs mode to display const? as
>> smiley-faces or something.  :-) :-)
>
> At this point Walter will intervene with:
>
> class Owner
> {
>   const?
>   {
>      A  a()  {...}
>      B  b()  {...}
>      C  c()  {...}
>      D  d()  {...}
>      E  e()  {...}
>      F  f()  {...}
>      G  g()  {...}
>      H  h()  {...}
>      I  i()  {...}
>      J  j()  {...}
>   }
> }
>
> which isn't half bad.

I was thinking about that too.  But I'm not a big fan of blocks that
change the meaning of declarations in a non-local way.  It looks quite
readable in toy examples, but after you insert all the bodies and
documentation comments for everything in the block, it becomes very
easy to lose sight of the tag way back at the beginning of the block.

--bb



More information about the Digitalmars-d mailing list