[Issue 4635] New: to!string fails for Variant and structs with uninitalized ("=void") static arrays
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Thu Aug 12 15:26:13 PDT 2010
http://d.puremagic.com/issues/show_bug.cgi?id=4635
Summary: to!string fails for Variant and structs with
uninitalized ("=void") static arrays
Product: D
Version: D2
Platform: Other
OS/Version: Windows
Status: NEW
Severity: normal
Priority: P2
Component: Phobos
AssignedTo: nobody at puremagic.com
ReportedBy: lio+bugzilla at lunesu.com
--- Comment #0 from Lionello Lunesu <lio+bugzilla at lunesu.com> 2010-08-12 15:26:10 PDT ---
Repro:
struct S
{
ubyte[1] raw = void;
}
static assert(is(typeof(S.init)));//fails
std/conv.d, line 256:
T to(T, S)(S s)
if (is(S == struct) && isSomeString!(T) && is(typeof(&S.init.toString)))
The last part is(typeof(&S.init.toString)) cannot be evaluated for structs
which have unitialized static arrays. This is true for std.variant.Variant.
(This might be a compiler bug, I'm not sure.)
I've fixed it by removing the ".init" on std/conv.d line 257 and 274. With this
change Variant can be directly printed, since to!string will detect the
toString member function.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
More information about the Digitalmars-d-bugs
mailing list