digitalmars.D.learn - toString why not const
- Tom (7/7) Jan 21 2011 Hi, I'm trying to override Object's toString. I've noted it isn't a
- Jesse Phillips (2/13) Jan 21 2011 Phobos hasn't become very const aware. There have been bugs and things p...
- bearophile (4/5) Jan 21 2011 There also the idea of introducing the writeTo() standard method, that's...
- Jonathan M Davis (11/22) Jan 21 2011 It's a long-standing bug: http://d.puremagic.com/issues/show_bug.cgi?id=...
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;
Jan 21 2011
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.
Jan 21 2011
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
Jan 21 2011
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
Jan 21 2011