问题标签 [boost-uuid]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3072 浏览

c++ - 从 C++ 中的字节加载 boost::uuid

.data()用来获取 16 字节的数据数组。
后来我把它写到一个文件中,我想把它加载回一个uuid变量。我是否应该将内存复制到变量中:(c++11)

0 投票
2 回答
277 浏览

c++ - 在这里将 random_generator 设为静态有什么问题吗?

我需要生成大量 UUID。如果我不做rg静态,每次默认构建它都会花费很多时间。如果我将其设为静态有什么问题吗,无论如何它会损害 uuid 的唯一性吗?

有没有更好的方法呢?

0 投票
1 回答
576 浏览

c++ - 如何将特定的 Boost 库编译为 DLL

我正在尝试在我的项目中嵌入 boost uuid 包。为方便起见,我们只想包含一些 DLL,就像我们使用的大多数库一样。我不知道如何只获取 uuid 包的 DLL(以及任何必要的依赖项)。我已经尝试正常构建 b2、bcp 以及我能找到的任何其他东西,但我得到的只是许多库的源代码或 DLL 的副本,而不是 uuid,这是我唯一需要的。

如果它有所作为,这是针对 Windows 应用程序的。我们有很多不同环境的开发人员,他们真的很喜欢可以包含在源代码控制中的东西(比如 DLL,但我愿意接受其他选项),这样每个人都不必安装 boost 和设置它同样的方法。理想情况下,我们也希望只需要 boost/uuid 和任何依赖项,而不是整个庞大的库。

0 投票
1 回答
1010 浏览

c++ - 使用默认 mt19937 RNG 生成的 boost UUID 对于会话 ID 是否安全?

我需要生成 UUID 以用作不可预测/可猜测的会话 ID。

这可以使用boost 的 UUID 库轻松完成:

返回的 UUID 可以很容易地转换为字符串。

上面的代码等价于:

所以我们使用的是 Mersenne Twister 19937 伪随机数生成器。看起来 boost 需要认真对待它的播种任务。

但是,我想知道是否可以通过使用像boost::random_device这样的非确定性 RNG 来获得重要的安全性,以及它将如何影响 UUID 生成的速度。

感谢具有安全洞察力的人的建议。

0 投票
1 回答
1524 浏览

c++ - 从 boost::compute::detail::sha1 生成 boost::uuids::uuid

我正在尝试以这种方式从boost::compute::detail::sha1生成boost::uuids::uuid :

但是此代码因错误而失败Error occurred: invalid uuid string(见上文)

我正在使用 Visual Studio 2017,Boost 1.67

我的错误在哪里?如何从 boost::compute::detail::sha1 生成 boost::uuids::uuid

PS:该代码适用于以前的 boost 版本。

0 投票
1 回答
175 浏览

boost - 用 boost 精神解析 boost uuid

我正在尝试编写一个boost::uuids::uuid解析器,boost::spirit::qi以便以一种很好的方式与其他qi解析器一起使用它并拥有一个很好的统一解析器 api。

我的第一个想法是编写一个qi::grammar将使用的自定义,boost::conversion::try_lexical_convert<boost::uuids::uuid &, const std::string &>但是这将存在将开始迭代器正确设置为使用位置的问题,因为boost::conversion::try_lexical_convert<boost::uuids::uuid &, const std::string &>不仅会匹配 16 个字符长的输入,而且还会匹配大括号或​​不带破折号。

我的第二种方法是使用一个boost::spirit::qi::rule(或者如果你愿意的话,可以使用一个语法 CRTP boost::spirit::qi::grammar::base_type),但是我得到了编译错误,可能来自BOOST_FUSION_ADAPT_STRUCT表达式:

/opt/local/include/boost/spirit/home/support/container.hpp:292:15:错误:在'boost::uuids::uuid'中没有名为'insert'的成员c.insert(c.end() , 值);

似乎是由 生成的问题boost::spirit::qi::detail::pass_through_container,但是我的方法与BOOST_FUSION_ADAPT_ADT结合*(obj.begin()+n)也失败并出现多个错误。

0 投票
0 回答
59 浏览

c++ - x86 内在函数在 boost::uuids::operator <

我正在使用boost::uuids内部地图(labeled_graph实际上),所以我需要一个正常工作的operator <. 不幸的是,它不是,如果BOOST_UUID_USE_SSE2启用(因此,uuid_x86.hpp被使用)。

这是示例代码:

使用时uuid_x86.hppoperator<不一致——在两种情况下都返回 false:

禁用基于内在的标头会使事情恢复正常:

这只能使用特殊的 UUID (12) 重现,完全随机的 id 不会揭示这个问题。

我有带有 libboost 1.58 的 Ubuntu Xenial。如果重要的话,CPU是i7-6600U。我错过了什么吗?

0 投票
1 回答
236 浏览

c++ - Boost::UUID 设置具体值

在 Java UUID 类中,有一种方法可以设置上限和下限 long 来为 UUID 创建特定值。

UUID test(-1, -1);

将生成 UUID:ffffffff-ffff-ffff-ffff-ffffffffffff

是否有类似的方法可以在 C++ 中使用 BOOST UUID 创建一个,然后创建它的字符串版本并将其转换回 UUID?