On Friday, 17 August 2012 at 01:50:02 UTC, Chris Cain wrote:
On Friday, 17 August 2012 at 01:43:03 UTC, Mehrdad wrote:
Isn't that kinda useless, if it tells you nothing about the object itself?

Not sure what your point is. It tells you enough about how you work with that "object itself"


Are you sure?



struct MyStruct
{
        static int* x;
        int y;

        this() { }
        this(int* z) { x = z; }

        auto getValue() const
        {
                ++*x;
                return this.y;
        }
}

auto s = MyStruct();
s = MyStruct(&s.y);

s.getValue();  // const, but returns 1
s.getValue();  // const, but returns 2
s.getValue();  // const, but returns 3



So, effectively, the mere const-ness (and even its transitivity) is useless to the compiler.



I'll let Mr. Davis confirm which he was talking about. The only thing that's clear is that our understandings of his point differ.

Okay sure, thanks for trying to explain it anyway!

Reply via email to