|
Boost : |
From: degski (degski_at_[hidden])
Date: 2020-05-23 18:02:10
On Fri, 22 May 2020 at 04:17, Paul A Bristow via Boost <
boost_at_[hidden]> wrote:
>
>
> > -----Original Message-----
> > From: Boost <boost-bounces_at_[hidden]> On Behalf Of Andrey
> Semashev via Boost
> > Sent: 21 May 2020 23:18
> > To: boost_at_[hidden] List <boost_at_[hidden]>
> > Cc: Andrey Semashev <andrey.semashev_at_[hidden]>
> > Subject: [boost] [container] Proposal for ring queues
> >
> > Hi,
> >
> > Some time ago I have proposed to include ring_queue and small_ring_queue
> containers to
> > Boost.Container:
> >
> > https://github.com/boostorg/container/pull/121
> >
> > The ring queues work similarly to std::queue with the main difference
> being that they use a ring
> buffer
> > internally to store elements. The small_ring_queue also allows to
> allocate a static storage for a
> fixed
> > amount of elements. The benefit of this is that dynamic memory
> allocations can be practically
> avoided
> > when the number of enqueued elements does not exceed some limit.
> >
> > In his reply in that PR Ion was not very enthusiastic about including
> these containers into
> > Boost.Container mostly because (a) there was presumably not much
> interest from users and (b)
> because
> > the current implementation requires C++17 while Boost.Container supports
> C++03.
> >
> > I would like to ask if there is interest in the community for these
> kinds of containers. I know I
> would find
> > them useful, and at least one person commented in the PR to the same
> effect. However, I would
> still
> > like to see if more people need this.
> >
> > If there is interest, what would be the preferred course of action?
> >
> > 1. Should we work on inclusion into Boost.Container or maybe some other
> library? Candidates?
> > Boost.CircularBuffer was mentioned in the PR, although I'm not sure it
> is suitable for these
> components.
> > Creating a new submodule is also a possibility, although it seems like
> an overkill.
> >
> > 2. Somewhat related to p.1, what minimum C++ version is preferred. E.g.
> > if we agree that Boost.Container is the right place for these
> components, I could work on lowering
> > minimum C++ version, although C++03 would complicate things considerably.
>
> FWIW ...
>
> I suspect that code will be easier to write, will work better, be more
> readable and understandable,
> and go faster using the most recent C++ std. It ought to be!
>
> So I favour a new library Boost.RingQueue. It meets two niche
> requirements, but neither too small a
> niche.
>
What about using *std::circular_list,* an end-to-begin-connected
*std::list ?*
degski
-- @systemdeg "We value your privacy, click here!" Sod off! - degski "Anyone who believes that exponential growth can go on forever in a finite world is either a madman or an economist" - Kenneth E. Boulding "Growth for the sake of growth is the ideology of the cancer cell" - Edward P. Abbey
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk