boost/cstdint.hpp
C++03 モード ( -std=c++03
) でコンパイルしていて、固定幅の整数が必要なので、C++ プロジェクトで使用しています (ネットワーク経由で送信され、ファイルに保存されます)。文字列をフォーマットするためのシンプルで高速snprintf
な方法であるため、私も使用しています。
boost::uint64_t
使用する適切なフォーマッターはありますか、snprintf(...)
それとも別のソリューション ( boost::format、 std::ostringstream) に切り替える必要がありますか?
私は現在使用していますが、別のアーキテクチャ (として定義されていない) では機能しない可能性があり、固定幅整数を使用する目的を無効に%lu
する可能性があるため、完全には満足していません。boost::uint64_t
long unsigned
boost::uint64_t id
id = get_file_id(...)
const char* ENCODED_FILENAME_FORMAT = "encoded%lu.dat";
//...
char encoded_filename[34];
snprintf(encoded_filename, 34, ENCODED_FILENAME_FORMAT, id);