On Tuesday, January 24, 2012 16:24:27 Ali Çehreli wrote: > On 01/24/2012 04:06 PM, Jonathan M Davis wrote: > >> class A { > >> int x; > >> > >> const int f1() { ... } > >> int f2() const { ... } > >> const(int) f3() { ... } > >> } > > [...] > > > int f2() const > > > > becomes > > > > int f2(const A this) > > > > Now, the confusing part is the fact that unlike C++, D allows you to > > put the > > > const for making the function on the _left-hand_ side of the function > > (C++ > > > only lets you put it on the right). > > Ok. > > > So, while a C++ programmer expects that > > > > int f2() const > > > > means that f2 is const, they're likely to be surprised by the fact > > that in > > > const int f1() > > > > it's the int that's const, not f1. > > Have you phrased that last bit correctly? :) It seems to conflict with > what you have said earlier. > > f1() and f2() are the same thing in D.
You're right. I said that incorrectly. f1 and f2 are identical. - Jonathan M Davis