The thing about blitz types, to use a bit of C talk, is that they're pointed structures. So say you have a type whose fields take up a total of 10 bytes, well when you create an array of these, you're not creating an array of conscutive 10 byte structures, you're creating an array of pointers with each one pointing to a structure. The structs themselves could be spread out all over the place.
None of this precludes the type of auto-initialisation you're talking about, but it does make it a slightly dangerous assumption. What's to say you don't actually want an array of NULL pointers, which you'll later fill to point to type instances that meet some criteria? If they're automatically created full of types, then you overwrite with NULL, there would be a load of wasted allocation and deallocation going on behind the scenes. In a nutshell, it's safer to let the user do it.
I see the itch, but I can't think of a decent solution.
None of this precludes the type of auto-initialisation you're talking about, but it does make it a slightly dangerous assumption. What's to say you don't actually want an array of NULL pointers, which you'll later fill to point to type instances that meet some criteria? If they're automatically created full of types, then you overwrite with NULL, there would be a load of wasted allocation and deallocation going on behind the scenes. In a nutshell, it's safer to let the user do it.
I see the itch, but I can't think of a decent solution.