
On 25/07/10 09:50, Tim Blechmann wrote:
What exactly about PODs is it taking advantage of? In C++0x will it work for all standard layout types?
one needs to read the payload from the fifo node, before it is dequeued. this may happen more than once otherwise a later dequeue may free the node. it is nothing, c++0x can change, but a property of the michael/scott queue [1]. the type essentially needs a trivial copy constructor.
If that's all it needs then I suggest you phrase the limitation in those terms; it's a lot less restrictive than requiring a POD type (which cannot, for example, have any user-defined constructors).
[1] http://www.cs.rochester.edu/research/synchronization/pseudocode/queues.html
If you implemented it exactly as it appears in this link then I guess it really needs a trivial copy assignment operator, not a trivial copy constructor, but of course the two tend to go hand-in-hand. You should probably require both. John Bytheway