On 04/25/2010 12:26 PM, Robert Clipsham wrote:
On 25/04/10 16:04, Ellery Newcomer wrote:
Does anyone have any ideas regarding this problem?

I haven't looked into this fully, but for the "the length field and the
array/structure are separated by one or more fields" issue, something
like this should help:
----
foreach( m; MyStruct.tupleof )
{
static if( is( typeof(m) x : x[] ) )
{
// This member is an array, so read the size_t length first, then
// the elements
}
else
{
// Treat normally.
}
}
----

Yeah, that's about what I do. The trouble is getting blit to know which field is the length field. I suppose you could pass an index into the tuple to the substructure. That still wouldn't fix the substructure being able to modify the field length.


I don't think there's a way of finding if a member is part of an
anonymous union, the only way around this seems to be to use a named
union so it is treated as one field.

Well, I assume anything with a union has to be special cased anyways, especially when the union has fields of different sizes. Everything's always written little endian, and I suspect treating the union as a single field would cause problems on mac, etc.

Reply via email to