On Friday, 13 September 2013 at 07:06:27 UTC, Jacob Carlborg
wrote:
I just hit a problem in my serialization library, Orange, being
integrated as std.serialization. The format of .stringof
changed in git HEAD. Now, the question is should the format of
.stringof be defined and reliable or not defined at all? Either
way, this should be clearly stated in the documentation, which
it's currently not.
Below is what's changed. It's managed to stay unchanged for the
last 6-7 years.
Before the change:
struct Foo
{
int a;
}
static assert(Foo.tupleof[0].stringof == "(Foo).a");
After the change:
static assert(Foo.tupleof[0].stringof == "a");
Aye, I had my own code break from this change as well (though it
was a very easy fix in my case). I really prefer the new format
however. Including the type made reading people's code very
confusing with the random T.tupleof[T.stringof + 3 .. $] if you
didn't understand the exact format. That being said, this is
something that's commonly enough used that it should be defined
whether or not the format could be relied upon.