これに関するドキュメントはかなり不足しているので、コミュニティが簡単なテストを実行し、結果をここに投稿して、私や他の誰かが参考になることを願っています.
#include <cwchar>
sizeof( std::mbstate_t );
ここに結果を投稿し、使用しているコンパイラについても言及していただければ幸いです。
VS2010 では として宣言されtypedef int mbstate_t;
、サイズは 32 ビットと 64 ビットの両方のビルドで 4 バイトです。
mbstate_t
のメンバーなので質問していstreampos
ます。このメンバーを使用して、エンコーディングの変換状態を保存する必要があります。回避できる最小スペースは 3 バイトであるため、実装によってコードが壊れるかどうかを知る必要があります。
前もって感謝します。