Boost logo

Boost Users :

From: Ion Gaztañaga (igaztanaga_at_[hidden])
Date: 2007-06-27 10:04:04


Aaron W. LaFramboise wrote:
> I'm trying to use Daniel James'es unordered containers, from the vault,
> with Interprocess:
>
> typedef ip::allocator<T,
> ip::managed_windows_shared_memory::segment_manager>
> T_allocator;
> typedef typedef boost::unordered_set<T, T_hash,
> std::equal_to<T>, T_allocator> T_set;
>
> I get this error:
>
> boost\unordered\detail\hash_table_impl.hpp(419) : error C2039: 'destroy'
> : is not a member of 'boost::interprocess::allocator<T,SegmentManager>'
>
> The method 'destroy' is missing in CVS, even though its still present in
> the documentation at
> <http://cloud.prohosting.com/newfunk/boost/libs/interprocess/doc/html/boost/interprocess/allocator.html>.
>
> Is there some other general-purpose allocator that would work here? Why
> is this method missing?

The library working group of the C++ committee is likely to ignore
allocator::destroy(), allocator::construct() and allocator::address()
from containers (I don't know if this resolution is firm or it's just an
intention). See the proposal here:

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2257.html

I removed those from Interprocess allocators since I thought nobody was
using them (I haven't received any report of a user-defined container
compatible with Boost.Interprocess).

Daniel's unordered containers package and Interprocess are not in sync,
mainly because it seems that unordered package is taking too long to be
in Boost.

That being said, I might put those members again for backwards
compatibility, but I would prefer modifying unordered classes to avoid
calling those functions if the committee decides to take them out from
allocators.

Regards,

Ion


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net