equivariant functions

KennyTM~ kennytm at gmail.com
Wed Oct 15 12:29:24 PDT 2008


Andrei Alexandrescu 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.
> 
> 
> Andrei

Huh? But

   class Owner {
     const    // without the “?”
     {
       A  a()  {...}
       B  b()  {...}
       C  c()  {...}
       D  d()  {...}
       E  e()  {...}
       F  f()  {...}
       G  g()  {...}
       H  h()  {...}
       I  i()  {...}
       J  j()  {...}
     }
   }

only apply const on the function, but not their return type (i.e. they 
become

       A a() const { ... }
       // etc.

but not

       const(A) a() const { ... }
       // etc.

)



More information about the Digitalmars-d mailing list