UUID简介
UUID 是“Universally Unique Identifier"的缩写,另一个别名是GUID,是一个128位的数字(16字节),不需要有一个中央认证机构就可以创建全球唯一的标识符。
UUID可以用在很多地方,比如标识某个系统的用户,标识网络信息等需要有唯一标识的地方。
boost(1.84)uuid库解析
uuid库是一个小的实用工具,可以表示和生成UUID。
boost(1.84) uuid部分源码如下:
namespace boost {
namespace uuids {
class uuid
{
private:
std::uint8_t data_[ 16 ] = {}; // exposition only
public:
// constructors
uuid() = default;
uuid( std::uint8_t const (&r)[ 16 ] );
// iteration
using value_type = std::uint8_t;
using reference = std::uint8_t&;
using const_reference = std::uint8_t const&;
using iterator = std::uint8_t*;
using const_iterator = std::uint8_t const*;
using size_type = std::size_t;
using difference_type = std::ptrdiff_t;
iterator begin() noexcept;
iterator end() noexcept;
const_iterator begin() const noexcept;
const_iterator end() const noexcept;
// data
std::uint8_t* data() noexcept;
std::uint8_t const* data() const noexcept;
// size
constexpr size_type size() const noexcept;
static constexpr size_type static_size() noexcept;
// is_nil
bool is_nil() const noexcept;
}
uuid位于命名空间boost::uuids中,内部使用一个16字节的数组std::uint8_t data_[ 16 ] = {};存储UUID值。
使用与示例
使用uuid需包含如下头文件:
#include <boost/uuid/uuid.hpp>
#include <boost/uuid/uuid_generators.hpp>
#include <boost/uuid/uuid_io.hpp>
using namespace boost::uuid;
使用随机生成器生成UUID
#include <iostream>
#include "boost/pool/object_pool.hpp"
#include "boost/uuid/uuid.hpp"
#include "boost/uuid/uuid_generators.hpp"
#include "boost/uuid/uuid_io.hpp"
using namespace boost::uuids;
using namespace std;
int main()
{
random_generator rgen;
uuid uid=rgen();
cout<<uid<<endl;
return 0;
}