2016-05-24 6 views

答えて

3

circular_bufferの容量を設定していません。

documentation

によれば、今コンストラクタは、任意のメモリを割り当てないとの両方の容量とサイズはゼロに設定されています。また、push_back(const_reference)やinsert(iterator、value_type)などのように、容量がゼロの循環バッファに要素を挿入すると、何も挿入されず、サイズ(容量と同様に)はゼロのままです。したがって

、次のようなバッファを構築する必要があります

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

代替は、建設後にこれを行うにはset_capacity(...)メソッドを使用することです:

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

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

ネヴァーマインド、私が指定するのを忘れてバッファの容量Boostが私にそれを手放すことは迷惑だ。

関連する問題