デバッグ目的の並列キュー上での反復

concurrent_queue および concurrent_bounded_queue テンプレート・クラスは、STL スタイルの反復をサポートします。キューをダンプする必要がある場合、このサポートはデバッグ目的でのみ行われます。イテレーターは前方へのみ移動します。非常に遅いため、製品コードでは使用しないでください。キューが変更された場合、キューを指すイテレーターはすべて無効になり、安全に使用できなくなります。次のコードは、キューをダンプします。operator<< は、Foo のために定義されています。

concurrent_queue<Foo> q;
...
typedef concurrent_queue<Foo>::const_iterator iter;
for(iter i(q.unsafe_begin()); i!=q.unsafe_end(); ++i ) {
    cout << *i;
}

メソッドの unsafe_ プリフィクスは、並列化セーフでないことを示すリマインダーです。