2016-05-24 3 views

Antwort

3

Sie legen die Kapazität des circular_buffer nicht fest.

Nach dem documentation

nun der Konstruktor zuteilt keine Speicher und beide Kapazität und Größe werden auf Null gesetzt. Beachten Sie auch, dass beim Einfügen eines Elements in einen circular_buffer ohne Kapazität (z. B. push_back (const_reference) oder insert (iterator, value_type)) nichts eingefügt wird und die Größe (sowie die Kapazität) Null bleibt.

Daher sollten Sie den Puffer als solche konstruieren:

size_t const BUFFER_CAPACITY(1024); // Whatever is appropriate 
boost::circular_buffer<bool> stuff(BUFFER_CAPACITY); 

Eine Alternative ist die set_capacity(...) Methode zu verwenden, um dies nach dem Bau zu tun:

boost::circular_buffer<bool> stuff; 
// ... 

size_t BUFFER_SIZE(1024); // Whatever is appropriate 
stuff.set_capacity(BUFFER_CAPACITY); 
2

Nevermind, vergaß ich angeben Kapazität für den Puffer. Es ist ärgerlich, dass Boost mich damit durchkommen lässt.

Verwandte Themen