|
Boost : |
Subject: Re: [boost] [btree] Status report
From: Thorsten Ottosen (thorsten.ottosen_at_[hidden])
Date: 2011-05-22 06:36:12
Den 21-05-2011 12:28, Matias Capeletto skrev:
> Hi Beman,
>
>> On Thu, May 19, 2011 at 5:49 AM, Thorsten Ottosen
>> <thorsten.ottosen_at_[hidden]> wrote:
>>> Boost.Bimap does something similar. Would it not be possible to do something
>>> similar, even though the value is fetched lazily?
>>
>> I'll look at Bimap. Thanks for the pointer.
In PtrContainer we cache the underlying pair to
adjust the interface:
template< class F, class S >
struct ref_pair
{
typedef F first_type;
typedef S second_type;
const F& first;
S second;
template< class F2, class S2 >
ref_pair( const std::pair<F2,S2>& p )
: first(p.first), second(static_cast<S>(p.second))
{ }
template< class RP >
ref_pair( const RP* rp )
: first(rp->first), second(rp->second)
{ }
const ref_pair* const operator->() const
{
return this;
}
...
};
Alternatively, it might be slightly more efficient to
provide cnoversion operations for dummy objects
called first/second. But I doubt it will have any significant
overhead in the btree case as I suspect that iteration
is already slower than normal in-memory datas tructures.
-Thorsten
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk