Re: toString why not const

2011-01-21 Thread Jesse Phillips
Tom Wrote:

 Hi, I'm trying to override Object's toString. I've noted it isn't a 
 const method, namely:
 
 string toString() const;
 
 This cause me troubles when using it on a const reference.
 
 Shouldn't it be const?
 
 Thanks,
 Tom;

Phobos hasn't become very const aware. There have been bugs and things 
preventing such an effort. So I do believe it should be const, but between the 
other priorities, and possible signature change for toString, it isn't done yet.


Re: toString why not const

2011-01-21 Thread Jonathan M Davis
On Friday, January 21, 2011 13:02:56 Tom wrote:
 Hi, I'm trying to override Object's toString. I've noted it isn't a
 const method, namely:
 
 string toString() const;
 
 This cause me troubles when using it on a const reference.
 
 Shouldn't it be const?
 
 Thanks,
 Tom;

It's a long-standing bug: http://d.puremagic.com/issues/show_bug.cgi?id=1824

In theory, the issues with const in the compiler and in Phobos will be focused 
on and sorted out not too long after the 64-bit port of dmd has been finished, 
but regardless, it's still an outstanding issue and definitely annoying.

Also, be warned that (due to another bug) you _can't_  declare a struct's 
toString to be const (it must be _exactly_ string toString() { ... }). You 
_can_, however, override toString() to be const on classes, though how much 
good 
it really does you, I'm not sure. Hopefully all that stuff will be sorted out 
semi-soon.

- Jonathan M Davis


Re: toString why not const

2011-01-21 Thread bearophile
Jesse Phillips:

 So I do believe it should be const, but between the other priorities, and 
 possible signature change for toString, it isn't done yet.

There also the idea of introducing the writeTo() standard method, that's neat 
:-)

Bye,
bearophile