Die Dokumentation für boost :: lockfree :: queue erwähnt, dass Push kann mehr Platz zuweisen, wenn es sein muss. Jedoch kann ich nicht für das Leben von mir herausfinden, wie man eine solche Warteschlange instanziiert, und ich kann kein Beispiel dafür finden. Alle Beispiele auf der Boost-Website haben eine feste Kapazität.Wie macht man eine boost :: lockfree :: queue dynamisch Größe ändern
Dies ist die Dokumentation ich war auf der Suche: http://www.boost.org/doc/libs/1_54_0/doc/html/boost/lockfree/queue.html
Danke für die Antwort. Ich habe das Gefühl, dass ich über etwas verwirrt sein muss. Wenn ich eine Warteschlange wie hier vorgeschlagen instanziiere, scheitert es mit einer Assertion "Assertion' has_capacity 'ist fehlgeschlagen. " Ich kann dem Konstruktor eine Größe übergeben, die diese Behauptung nicht trifft, aber dann scheint es sich in einer festen Größe zu verhalten. –
Siehe meine Bearbeitung. Ich glaube, die Behauptung ist ungültig, (das ist ein Fehler in Boost.Lockfree). Die Anforderung sollte entweder dokumentiert werden oder die Assertion sollte geändert werden, um auch zu überprüfen, ob die Warteschlange tatsächlich fest ist. – Mankarse
Ich denke, die Behauptung ist in Ordnung. Es behauptet, dass ** eine anfängliche Kapazität sein muss (entweder weil es fest ist, ** oder **, weil es beim Bau passiert ist). Daher ist es illegal, eine Warteschlange mit dynamischer Größe ohne anfängliche Kapazität zu erstellen. Kannst du auf den relevanten Fehlerbericht/die Diskussion verweisen, um deine Behauptung "Es gibt einen Fehler" zu unterstützen? – sehe