|
Boost : |
From: Tom Brinkman (reportbase_at_[hidden])
Date: 2004-04-01 10:14:19
The review of Assignment Library library, written by
Thorsten Ottosen 2003 (nesotto_at_[hidden]) starts
today(April 1, 2004)and runs for 10 days.
Latest version of the library is available at:
http://groups.yahoo.com/group/boost/files/assignment/
(204 kB) or in the sandbox.
What it is?
The purpose of this library is to make it easy to
fill containers with data by overloading
operator the comma, () and operator()().
Example: To fill a vector with values you write:
#include <boost/assign/stl.hpp// for operator+=()
#include <vector>
using namespace std;
using namespace boost::assignment;
vector<intvalues;
values += 1,2,3,4,5,6,7,8,9;
values += foo1(), foo2(), foo3();
History of the project:
The idea for an initialization library is not new .
The functionality of this library resembles Leor
Zolman's STL Container Initialization Library
a great deal, but it does not
rely on string passing to achieve its goals.
The library is non-intrusive and puts only
a minimum of requirements on its supported classes.
(change classes to types)
The Initialization Library overloads the
comma operator in a safe manner by letting free
standing functions return an object that is
responsible for the initialization.
Therefore it takes explicit action from the programmer
to begin using the overloaded operator,(). The
operator comma
is never overloaded for user-defined types.
Portability:
Library has been successfully compiled and tested with
MVC++ 6.0, MVC++ 7.0, MVC++ 7.1, GCC 3.2 (under
Cygwin)
Comeau 4.3.0.1, Intel ICC 7.1 and Intel ICC 8.0.
There are known limitation on platforms not
supporting partial template specialization.
Review Comments:
Your review comments are welcomed. Found problems
and suggestions for documentation are highly
sought. Requests for new features requests will
shape the way this library will evolve in future.
1. Where should the main libraries header files be
placed. This is header only library and should be
fairly easy
to manage.Should it be placed in the utilty folder or
its own
folder?
2. Should the headers be broken up? This library has
extensions to boost::array, boost::ublas and
boost::graph.
Should those headers be placed in their respective
folder or kept
together with the headers associated with the main
Assignment
library headers. Or, should the boost
library extensions remain just as examples of
how to extend the library.
3. Should the fixed_size_asssigner only throw on
out_of_bounds exception or should it default
initialize the
remainning elements?
Two classes can throw an exception in their
destructor.
This is done when detecting eg. a boost::array has not
been initialized with enough elements. Should this be
replaced by default initializing the remaining
elements?
4. This library needs to use the boost test framework.
Review Manager
Tom Brinkman
reportbase_at_[hidden]
__________________________________
Do you Yahoo!?
Yahoo! Small Business $15K Web Design Giveaway
http://promotions.yahoo.com/design_giveaway/
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk