Boost logo

Boost :

From: Thorsten Ottosen (nesotto_at_[hidden])
Date: 2003-03-01 19:29:51


Hi Boosters,

The container algorithms are almost finished (at least for complient
compilers). This means we can do the following for all standard algorithms:

int array[] = { .... };
std::pair<iterator,iterator> = ...;
vector v = ....;

std::copy( <one_of_the_three_containers>, <one_of_the_containers> );
All the conde is in the sandbox in

boost/sequence_algo/(container_traits.hpp|container_algo.hpp)
libs/sequence_algo/test/container_algo.cpp

 So I would like to get some feedback on these issues:

1. by overloading some names raises ambiguity. The obvious solution is to
change the name of the algorithm slightly. Currently I have
    put those algorithms in an extra namespace "ext". Another possibility
was to add an underscore.
2. many standard algorithms take a single output iterator as an argument.
Currently the argument for output must be a container. Should
    it be posible to specify an iterator here too?
3. What kind of documentation would be appropriate for this library? I
imagine a very short one.
4. The code implement poor mans partial specialization to enable the
container_traits to work with buggy compilers; so far so good; however,
    many compilers cannot even do partial ordering of function templates
which is a real pain in the ****. I know the workaround might be
    to say

    template< typename C >
    inline typename
    container_traits<C>::iterator
    begin( C c )
    {
        return container_traits<C>::function_t::begin( c );
    }

instead of

    template< typename C >
    inline typename
    container_traits<C>::iterator
    begin( C& c )
    {
        return container_traits<C>::function_t::begin( c );
    }

    template< typename C >
    inline typename
    container_traits<C>::const_iterator
    begin( const C& c )
    {
        return container_traits<C>::function_t::begin( c );
    }

but C can be a huge STL container. Can we assume compilers will inline code
and not copy anything?

   5. Should the small boost extensions like iota etc be included with this
realease as well?

regards

Thorsten


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk