Boost logo

Boost Users :

From: JOAQUIN LOPEZ MU?Z (joaquin_at_[hidden])
Date: 2005-07-16 01:20:07

----- Mensaje original -----
De: Elisha Berns <e.berns_at_[hidden]>
Fecha: Sábado, Julio 16, 2005 3:15 am
Asunto: Re: [Boost-users] Container/Algorithm question

> Joaquin,
> Sorry to be the bearer of bad news, but for some reason the multi-
> indexcontainer starts to fail for some larger number of pairs (a few
> hundred). The container doesn't/won't insert them, and to be
> honest, I
> don't have a clue at this point why.

The code is so simple that I fail to see how it can be failing,
so let's insert some traces:

  std::pair<iterator,bool> insert(const value_type& x)
    iterator it0=impl.find(boost::make_tuple(x.first));
      typename impl_type::nth_index_iterator<1>::type it1=
        impl.template get<1>().find(x.second);
      if(it1!=impl.template get<1>().end()){
        return std::make_pair(it0,false);
    return impl.insert(x);

Can you insert the std::cout output sentences above to your code
and report what it's showing? If everything is working OK,
when an insertion fails, x.first==it0->first and
x.second=it1->second. Isn't it so? Can you provide the data
the container is fed with when the first (erroneous) insertion
failure happens?

> If you're up for it you
> might want
> to stress test the code you sent me with thousands of unique pairs and
> redundant pairs.

I'll examine this closer next Monday if we
haven't located the problem before.

Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo

Boost-users list run by williamkempf at, kalb at, bjorn.karlsson at, gregod at, wekempf at