digitalmars.D - TypeInfo request
- Ben Hinkle (14/14) Jul 23 2005 Currently the TypeInfo support for dynamic arrays is split into arrays o...
- pragma (9/23) Jul 25 2005 I'll second this. D's TypeInfo system has been great up until now, but ...
Currently the TypeInfo support for dynamic arrays is split into arrays of primitives and everything else. For example an array of ints has TypeInfo_Ai which subclasses TypeInfo while an array of strings (char[]) has TypeInfo_Array with a next field of type TypeInfo that has an instance of TypeInfo_Aa (which is the TypeInfo for a string). As I've been messing around with std.format getting better array support I've noticed it would be nice to have a more consistent model. For example having TypeInfo_Ai subclass TypeInfo_Array with the next field set to TypeInfo_int would help. Also having TypeInfo_Array and TypeInfo_AssociativeArray have foreach hooks would be very handy. Currently I don't want to add AA support to doFormat since it would require calling _aaApply and making assumptions about how foreach is implemented. For dynamic arrays I'm looping over the contents by hand since the layout isn't compiler dependent.
Jul 23 2005
In article <dbucsl$12u7$1 digitaldaemon.com>, Ben Hinkle says...Currently the TypeInfo support for dynamic arrays is split into arrays of primitives and everything else. For example an array of ints has TypeInfo_Ai which subclasses TypeInfo while an array of strings (char[]) has TypeInfo_Array with a next field of type TypeInfo that has an instance of TypeInfo_Aa (which is the TypeInfo for a string). As I've been messing around with std.format getting better array support I've noticed it would be nice to have a more consistent model. For example having TypeInfo_Ai subclass TypeInfo_Array with the next field set to TypeInfo_int would help. Also having TypeInfo_Array and TypeInfo_AssociativeArray have foreach hooks would be very handy. Currently I don't want to add AA support to doFormat since it would require calling _aaApply and making assumptions about how foreach is implemented. For dynamic arrays I'm looping over the contents by hand since the layout isn't compiler dependent.I'll second this. D's TypeInfo system has been great up until now, but its starting to come up short when compared to all the other improvments D has seen over the last few years. At the very least, Ben's suggestions for improvment should be taken seriously. Moreover, I also think that D should move towards a more comprehensive type system in D if any changes to TypeInfo are considered; that's something else that Ben also knows a thing or two about. ;) - EricAnderton at yahoo
Jul 25 2005