Andrei Alexandrescu:

> To find an array that always has initialized data, look no further than 
> std::vector. There is no way to grow an std::vector without filling it 
> with data under user's control. The only place where std::vector assumes 
> a default is the resize function:
> 
> void vector<T>::resize(size_type newSize, T filler = T());
> 
> If that default went away, the user would always be required to provide 
> a filler when growing the vector.

In D the array append is not an efficient operation, and in general it's not 
handy to limit to just that the ways to create an array of nonnullables. In 
another post I have shown how Spec# solves this problem (using a statement to 
divide the array building phase from the phase where you may read the array 
items).

Bye,
bearophile

Reply via email to