ブースト ロックフリー サイズが 65535 オブジェクトに固定されているのはなぜですか?
typedef boost::lockfree::queue<int, boost::lockfree::fixed_size<true>> MyQueue;
MyQueue queue(1024*100);
上記のコードは例外をスローします。
私がコードで見つけた理由は、配列ベースのフリーリストが 16 ビットのアドレス空間しかサポートしていないということです。
これの理由は何ですか?私は64ビットのLinuxマシンで使用しています。では、なぜアドレス指定を 2**16 アイテムに制限するのでしょうか? キューはインデックス作成に「short int」を使用しますか? アトミック命令は 16 ビット ワード サイズでのみ機能しますか?
これよりも多くの容量を持つ固定サイズのキューを作成するにはどうすればよいですか?