Rene Brun wrote: > I understand that you may gain time in making this storage assumption. The original STL standard left the question "Must elements of a vector be contiguous?" indeed open. This issue comes up quickly whenever a STL vector is to be interfaced with other code, see for example discussion on Josuttis book on the STL, section 6.2.3 page 155. Finally the C++ Library Working Group issued a clear statement: The issue is this: Must the elements of a vector be in contiguous memory? Proposed resolution: Add the following text to the end of 23.2.4 [lib.vector], paragraph 1. The elements of a vector are stored contiguously, meaning that if v is a vector<T, Allocator> where T is some type other than bool, then it obeys the identity &v[n] == &v[0] + n for all 0 <= n < v.size(). The above statement has been issues as a `defect report' to the STL spec, see http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/lwg-defects.html#69 > However, this is not guaranteed to work on all compilers or with the > next version of the same compiler. If current compiler versions work, future versions will too because the STL spec is clearly moving in this direction. > If you want to gain time, use TClonesArray instead. In my case I had to handle a few varying size arrays of elementary types. It's hard to see how that can be done with TClonesArray. Cheers, Walter -- Walter F.J. Mueller Mail: W.F.J.Mueller@gsi.de GSI, Abteilung KP3 Phone: +49-6159-71-2766 D-64291 Darmstadt FAX: +49-6159-71-2989 WWW: http://www-kp3.gsi.de/www/kp3/people/mueller.html PGP: http://www-kp3.gsi.de/~mueller/pgp.shtml
This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:51:10 MET