equivariant functions
Andrei Alexandrescu
SeeWebsiteForEmail at erdani.org
Wed Oct 15 12:37:37 PDT 2008
KennyTM~ wrote:
> 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.
>
> )
Yah, but it does not make sense to not apply const? to the return value.
Andrei
More information about the Digitalmars-d
mailing list