web-dev-qa-db-ja.com

boost :: uuidをchar *に変換する

Boost :: uuidをconst char *に変換したいと考えています。変換の正しい構文は何ですか?

33
SchwartzE

フードの下で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();
43
user192610

念のため、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();
47
SkorKNURE

<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」文字列が必要な理由の詳細については、 ここを参照 です。)

11
Reed Copsey

ストリーム関数はboost/uuid/uuid_io.hppで使用します。

boost::uuids::uuid u;

std::stringstream ss;
ss << u;
ss >> u;
1
Joe
boost::uuids::uuid u;

const char* UUID = boost::uuids::to_string(u).c_str();

簡単で素早い変換が可能です。

0