From: Nicolas C. <war...@fr...> - 2004-04-30 11:34:54
|
> > This is indeed interesting problem : > > 1) The current implementation trade complexity to get safety : the first > > call to next() is duplicating one the array so further modifications of the > > Hashtbl will not cause any problem since we're working on a duplicate one. > > That's expected behavior for an Enum. > > 2) Other solution is to only iterate over the Hashtbl, incrementing the > > index and throwing No_more_elements when we're out of the bounds of the > > array. Then we need to add to the specs (as it's actually the case for many > > languages) "results of iterating while modifying a mutable underlying data > > structure are unspecified". > > But the client code that uses enums is not supposed to know this. You're wrong. If it's part of Enums specs then of course you're supposed to know this. Nicolas Cannasse |