Refering to https://github.com/cameron314/readerwriterqueue , there is a sample code like following :
ReaderWriterQueue<int> q(100); // Reserve space for at least 100 elements up front
q.enqueue(17); // Will allocate memory if the queue is full
bool succeeded = q.try_enqueue(18); // Will only succeed if the queue has an empty slot (never allocates)
assert(succeeded);
int number;
succeeded = q.try_dequeue(number); // Returns false if the queue was empty
assert(succeeded && number == 17);
// You can also peek at the front item of the queue (consumer only)
int* front = q.peek();
assert(*front == 18);
succeeded = q.try_dequeue(number);
assert(succeeded && number == 18);
front = q.peek();
assert(front == nullptr); // Returns nullptr if the queue was empty
Suppose I like to have a array for ReaderWriterQueue constructed with parameter 100 , how can I define the var ?!
ReaderWriterQueue<int> qp[1024] ;
that is ok , but I like all 1024 of them with parameter 100 ,
ReaderWriterQueue<int>(100) qp[1024] ;
won't compiled , I try to use pointer :
ReaderWriterQueue<int>* qptr;
qptr = new ReaderWriterQueue<int>(1024) ;
will work , but without parameter 100 ,
qptr = new ReaderWriterQueue<int>(100) (1024) ;
won't compile , so how can I make an array of 1024's ReaderWriterQueue , all of them constructed with parameter 100 ?!
boost::optionalused withboost::in_placewould do it.