Subject: Re: [boost] [Modularization] new Memory module
From: Ion Gaztañaga (igaztanaga_at_[hidden])
Date: 2014-06-09 06:17:23
El 09/06/2014 10:11, Vicente J. Botet Escriba escribió:
> Le 04/06/14 13:27, Vicente J. Botet Escriba a écrit :
>> |What about creating a Memory module containing| most of the things
>> the standard defines in <memory> except maybe what is already in
>> SmartPptr, e.g.
>> ||* boost/interprocess/allocators/*||
>> |* boost/intrusive/pointer_traits.hpp
> Any comments on this new module? Ion?
Thanks for the ping, I'm not closely following modularization threads.
Interprocess allocators are only usable by Interprocess users, I don't
think they should be outside. intrusive::pointer_traits is usable from
other libraries. Container uses it extensively, but Container heavily
depends on Intrusive. I don't know if other libraries use it.
We also have a portable allocator_traits implementation in
Boost.Container that might be reusable by other boost containers. We
need to see real use cases to see if this class makes sense in
Boost.Memory or its place should be Container.
For Boost 1.56 we'll have new allocators in Boost.Container, and those
take advantage of Boost.Container internals to offer reallocation, burst
allocation, etc. They could be usable by other Boost containers, but
they are still experimental and unless there is a strong need for that,
I would not move them to a new module now.
pointer_traits offers extensions not found in std::pointer_traits (like
pointer casting). We need to to carefully think about this
(Boost.Intrusive needs to make some conversions not covered by
In any case, if reusable, I would make a new library (with documentation
and test cases), not only a new git module.
So my opinion is: Don't move interprocess allocators, let's see if a
strong need arises for a common pointer_traits/allocator_traits and
we'll think about solutions.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk