Boost 1.42新库速递——UUID
来源:互联网 发布:中国商业源码网 编辑:程序博客网 时间:2024/05/23 12:59
引言
示例代码
标记
- // 用uuid标识对象的例子
- // 参考 boost/libs/uuid/test/test_tagging.cpp
- #include <boost/uuid/uuid.hpp>
- #include <boost/uuid/uuid_generators.hpp>
- class object
- {
- public:
- object()
- : tag(boost::uuids::random_generator()())
- , state(0)
- {}
- explicit object(int state)
- : tag(boost::uuids::random_generator()())
- , state(state)
- {}
- object(object const& rhs)
- : tag(rhs.tag)
- , state(rhs.state)
- {}
- bool operator==(object const& rhs) const {
- return tag == rhs.tag;
- }
- object& operator=(object const& rhs) {
- tag = rhs.tag;
- state = rhs.state;
- }
- int get_state() const { return state; }
- void set_state(int new_state) { state = new_state; }
- private:
- boost::uuids::uuid tag;
- int state;
- };
- object o1(1);
- object o2 = o1;
- o2.set_state(2);
- assert(o1 == o2);
- object o3(3);
- assert(o1 != o3);
- assert(o2 != o3);
POD(Plain Old Data)风格
- // 使用memcpy和初始化器的例子
- // uuid类的例子请参考boost/libs/uuid/test/test_uuid_class.cpp
- #include <boost/uuid/uuid.hpp>
- #include <boost/uuid/uuid_generators.hpp>
- { // 使用memcpy的例子
- unsigned char uuid_data[16];
- // 填充uuid_data
- boost::uuids::uuid u;
- memcpy(&u, uuid_data, 16);
- }
- { // 使用初始化器的例子
- boost::uuids::uuid u =
- { 0x12 ,0x34, 0x56, 0x78
- , 0x90, 0xab
- , 0xcd, 0xef
- , 0x12, 0x34
- , 0x56, 0x78, 0x90, 0xab, 0xcd, 0xef
- };
- }
- // 建立一个uuid类的例子
- // 使用默认机制在构造时初始化一个值
- class uuid_class : public boost::uuids::uuid
- {
- public:
- uuid_class()
- : boost::uuids::uuid(boost::uuids::random_generator()())
- {}
- explicit uuid_class(boost::uuids::uuid const& u)
- : boost::uuids::uuid(u)
- {}
- operator boost::uuids::uuid() {
- return static_cast<boost::uuids::uuid&>(*this);
- }
- operator boost::uuids::uuid() const {
- return static_cast<boost::uuids::uuid const&>(*this);
- }
- };
- uuid_class u1;
- uuid_class u2;
- assert(u1 != u2);
字节提取
- boost::uuids::uuid u;
- std::vector<char> v(u.size());
- std::copy(u.begin(), u.end(), v.begin());
0 0
- Boost 1.42新库速递——UUID
- boost库之uuid
- boost库uuid工具
- Visual Studio 2015速递(1)——C#6.0新特性怎么用
- Visual Studio 2015速递(3)——ASP.NET 新特性
- boost uuid
- boost uuid
- boost uuid
- boost uuid
- boost uuid 学习笔记
- boost uuid 学习笔记
- Visual C++ 2008新特性速递
- Visual C++ 2008新特性速递
- Visual C++ 2008新特性速递
- Python爬虫实战——豆瓣新书速递
- 速递Flash CS5、AIR2.0与Flash Builder4新特性
- [外包速递] 开发者其实就差那么一点——让CSDN放大你的成长!
- 斐波那契数列——矩阵加速递推
- Google C++ Mocking Framework Cheat Sheet
- 浅谈游戏中的心理学
- HDU 2054
- 计算机视觉-TLD算法(一)
- 开源
- Boost 1.42新库速递——UUID
- iphone定位的的资料
- 某日某时的一点反思
- listview android:cacheColorHint,android:listSelector属性作用
- Boost学习之CRC校验
- ASCII码表
- C++primer(第五版)第十章 泛型算法
- 关于如何提高Web服务端并发效率的异步编程技术
- matlab convhull 离散点集获得边界