toString why not const

Jonathan M Davis jmdavisProg at gmx.com
Fri Jan 21 14:59:53 PST 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


More information about the Digitalmars-d-learn mailing list