Convert boost::uuid to char*
Solution 1
You can do this a bit easier using boost::lexical_cast that uses a std::stringstream under the hood.
#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();
Solution 2
Just in case, there is also boost::uuids::to_string
, that works as follows:
#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();
Solution 3
You can include <boost/uuid/uuid_io.hpp>
and then use the operators to convert a uuid into a std::stringstream
. From there, it's a standard conversion to a const char*
as needed.
For details, see the Input and Output second of the Uuid documentation.
std::stringstream ss;
ss << theUuid;
const std::string tmp = ss.str();
const char * value = tmp.c_str();
(For details on why you need the "tmp" string, see here.)
Solution 4
You use the stream functions in boost/uuid/uuid_io.hpp.
boost::uuids::uuid u;
std::stringstream ss;
ss << u;
ss >> u;
Solution 5
boost::uuids::uuid u;
const char* UUID = boost::uuids::to_string(u).c_str();
It is possible to do a simple and quick conversion.
SchwartzE
I serve three primary roles simultaneously. I am a software developer, modeling and simulation analyst, and a project/program manager. My primary software development experience is utilizes the .Net development stack and SQL Server databases.
Updated on November 25, 2020Comments
-
SchwartzE over 3 years
I am looking to convert a boost::uuid to a const char*. What is the correct syntax for the conversion?
-
user1556435 about 8 yearsFor people working with ancient boost versions: This method is introduced in 1.44. See boost.org/doc/libs/1_43_0/boost/uuid/uuid_io.hpp boost.org/doc/libs/1_44_0/boost/uuid/uuid_io.hpp
-
Gr-Disarray almost 5 yearsafter reading the boost documentation it seems to me that this answer is correct, however as per the documentation also indicates that to_string and to_wstring functions provided by boost::uuids is likely faster than boost::lexical_cast. link
-
Igor R. over 4 yearsThis would lead to UB, if to_string returns temporary.