boost:::dynamic_bitset または std::vector が内部で何をしているのか理解するのに苦労しています。私が最終的にやりたいことは、ネットワークフレームを作成してソケット経由で送信することですが、組み立てたビット順序を維持する方法でそれらを変換することはできません...
#include <iostream>
#include<stdio.h>
#include "boost/dynamic_bitset.hpp"
int main()
{
boost::dynamic_bitset<> b(8, 10); // 8 Bits, value 10
std::cout << "b = " << b << std::endl; // as expected
printf("Vector size: %i\n", b.size());
printf("Bits: %d", b); // ?
return 0;
}
クラスが << ストリーム演算子をオーバーロードしたことを理解しています。したがって、正しい出力が得られますが、printf は生の構造を示しているようです。私には決定論的でさえないようです(以下では、再コンパイルせずに同じ.exeを繰り返し実行しました):
私の質問:
- ボンネットの下で基本的に何が起こるのでしょうか? どうやらそれは配列に匹敵するものではありません。
- ソケット send() 経由でそのようなビットセットを送信するにはどうすればよいですか?