|
Boost : |
From: Thorsten Ottosen (nesotto_at_[hidden])
Date: 2004-04-10 05:21:32
Hi Gennadiy,
Thanks for your review.
> 2. Forwarding problem
> This library is affected by forwarding problem. I do not know how
important
> it is, but may be we should use by-value scheme used by boost::bind?
won't boost::ref <> "solve" this. (don't bind use &?)
> 3. Library doesn't allow to create const collections.
> Well, I am not sure whether or not it's doable but currently it's not
> supported
It has already been suggested to support
const vector<int> v = init( v )(1)(2).
> 1. insert_assigner( C& c, const value_type& v )
(a)
>as well as
> fixed_size_assigner( const iterator& begin, const iterator& end, const
> value_type& v ) are unnecessary
(b)
(a) is used with operator+=()
(b) is used with operator<<(). If this goes away, it will sill eb used in eg
assign_all( array ) = 1,2,3;
> 2. Should we use Boost::pp to implement insert_assigner,
fixed_size_assigner
> e.t.c. and have configurable limit?
Some have wanted this. I have no problems with it besides I can't see what
its good for.
Having a function/constructor with more than X arguments (x small) is hardly
good practice.
> 3. Obviously code needs to be refactored into smaller pieces. One header
per
> stl container. Also by default it shouldn't include boost related
extensions
ok.
> 4. ~fixed_size_assigner
> This method may throw an exception. Does it always safe to rely on
> uncaught_exception call?
No, it is not always safe, but the unsafe stuff happens if you use it in a
destructor; not very
likely. Sutter has an article about it.
>Could we move this somehow out of destructor?
Yes. I would prefer to default initialize the remaining elements. It do put
that additional
requirement on the suported types, but not a big thing IMO.
> 5. No function template ordering handling
> Why not use usual trick with extra long parameter?
Sure. What's the trick and what's the issue?
> 6. Why not use tuple_insert_assigner for matrix assignment? Wouldn't be
> safer?
No. A matrix is usually a fixed sized container, eg a 4-by-4 matrix. Thus
we can
make bounds checking. tuple_insert_assigner is used for forwarding to
functions that
take a "tuple" of arguments. Just plain forwarding.
> 7. Promised support for MSVC 6.0 doesn't seems to work
It's been a while since I did the test. I won't promise vc6 support
with the new proposed changes, but I will try.
> 1. Why insert_assigner needs to include <boost/call_traits.hpp>
It don't. Thanks.
> 2. What is make.hpp,template.hpp?
just rubbish.
> 3. I would name insert as append, cause it actually does not support
inside
> the collection and this is after all is assignment library
good idea.
> 1. Tests doesn't seem to perform runtime correctness checks in most cases
> or rely on assert for checks. It would be preferable to use more graceful
> error checks.
Yes. Tom wanted real test too.
> Good job,
thanks.
br
Thorsten
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk