Using ArraySegment's under the hood is kind of is what I am doing now; one interesting edge case is when you want to call functions written in other .NET languages (one main idea behind this project is to allow interoperability between D and other languages, and leverage existing frameworks rather than reinvent the wheel).
If you pass a slice to a "foreign" function that mutates elements in the array, it will not work as expected, because non-D code has no knowledge of slices. The work-around is to construct a temporary array out of the slice, but any changes that the called function makes to that temp array will be lost. This can be remedied by having the compiler generate post-call code that commits the changes back into the original array. It may work but is not efficient. Currently I content myself with just issuing a compiler warning / error when such a situation is detected. Cheers, Cristian "BCS" <[email protected]> wrote in message news:[email protected]... > Reply to Walter, > >> http://www.reddit.com/r/d_language/comments/838lf/cristian_vlasceanu_a >> nd_d_for_the_net_platform/ >> > > His comments on array slicing are interesting. > > Seems to me the solution should be to have *all* dynamic arrays be > ArraySegment as all dynamic arrays under DMD are a slices of the full > memory space. > >
