Changes between Version 7 and Version 8 of soc2009


Ignore:
Timestamp:
Mar 19, 2009, 10:21:50 PM (14 years ago)
Author:
Thorsten Ottosen
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • soc2009

    v7 v8  
    282282
    283283
     284== Boost.Devector ==
     285
     286The purpose of this project would be to write a super-efficient alternative to std::deque, named boost::devector.
     287As the name suggest, this would be something of a mixture between std::deque and std::vector, bringing the best of
     288them both together.
     289
     290One of the prime uses of std::deque is with intrusive containers, whether are home-made or based on
     291Boost.Intrusive ([http://www.boost.org/doc/libs/1_38_0/doc/html/intrusive.html]). The property that is
     292so imporant here is reference stability (when the container grows, references are not invalidated).
     293
     294The exsting std::deque has a number of short-comings that should be solved for this container:
     295
     296 * slow iteration (see e.g. [http://lafstern.org/matt/segmented.pdf])
     297 * inability to specify the size of the chunk and/or change them at runtime
     298 * inability to reserve chunks of memory in advance (at both ends)
     299 * overencapsulated for certain low-level operations.
     300
     301Writing such a container is non-trivial, but you will learn to master the following
     302important topics
     303
     304 * generic programming in C++
     305 * low-level C++ development
     306 * the use of Boost.Iterator ([http://www.boost.org/doc/libs/1_38_0/libs/iterator/doc/index.html])
     307 * the use of Boost.TypeTraits ([http://www.boost.org/doc/libs/1_38_0/libs/type_traits/doc/html/index.html])
     308
     309Futhermore, you will learn to write canonical exception-safe code which is something that
     310you can make use of no matter what language you will be using in the future. You will also
     311learn to write rigorous tests. And you will learn how to write precise and clear documentation at a level
     312suitable for an expert. All of these abilities should be very useful for you in your future career.
     313
     314If there is more time, we can look at additional advanced data-structures.
     315
     316-Thorsten
     317