On 28/11/10 9:35 PM, Walter Bright wrote:
You can write memoized functions in D, you just can't label them as
const. You'll be relying on convention. Memoized (logically const)
functions are not verifiable in C++, either, so you are not technically
worse off.

I am technically worse off, just not from the compilers point of view.

I see your point about C++ const being a convention, but that doesn't change the fact that it is still very useful, even if it useless for the compiler. If I give some const object to a function:

void render(const GameObject&);

GameObject obj;
render(obj);

I can be sure that my object will come back unmodified. That it is the primary purpose of const. Like you said, it allows you to reason about your programs.

Yes, GameObject could be unreasonably mutilated by careless use of mutable, but in practice that simply doesn't happen.

Reply via email to