Boost :: uuidをconst char *に変換したいと考えています。変換の正しい構文は何ですか?
フードの下でstd :: stringstreamを使用するboost :: lexical_castを使用すると、これが少し簡単になります。
#include <boost/lexical_cast.hpp>
#include <boost/uuid/uuid_io.hpp>
const std::string tmp = boost::lexical_cast<std::string>(theUuid);
const char * value = tmp.c_str();
念のため、boost::uuids::to_string
、それは次のように機能します:
#include <boost/uuid/uuid.hpp>
#include <boost/uuid/uuid_io.hpp>
boost::uuids::uuid a = ...;
const std::string tmp = boost::uuids::to_string(a);
const char* value = tmp.c_str();
<boost/uuid/uuid_io.hpp>
を含めてから、演算子を使用してuuidをstd::stringstream
に変換できます。そこから、必要に応じてconst char*
への標準変換になります。
詳細については、 idドキュメントの2番目の入力と出力 を参照してください。
std::stringstream ss;
ss << theUuid;
const std::string tmp = ss.str();
const char * value = tmp.c_str();
(「tmp」文字列が必要な理由の詳細については、 ここを参照 です。)
ストリーム関数はboost/uuid/uuid_io.hppで使用します。
boost::uuids::uuid u;
std::stringstream ss;
ss << u;
ss >> u;
boost::uuids::uuid u;
const char* UUID = boost::uuids::to_string(u).c_str();
簡単で素早い変換が可能です。