Boost logo

Boost :

From: degski (degski_at_[hidden])
Date: 2020-05-23 18:14:23


On Sat, 23 May 2020 at 13:02, degski <degski_at_[hidden]> wrote:

>
> 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
> ?*
>

Apologies, I meant to write *boost::container::circular_list *an
end-to-begin-connected* boost::container::list ?*

degski
PS: ;)

-- 
@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