问题标签 [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.
c++ - 从 C++ 中的字节加载 boost::uuid
我.data()
用来获取 16 字节的数据数组。
后来我把它写到一个文件中,我想把它加载回一个uuid
变量。我是否应该将内存复制到变量中:(c++11)
c++ - 在这里将 random_generator 设为静态有什么问题吗?
我需要生成大量 UUID。如果我不做rg
静态,每次默认构建它都会花费很多时间。如果我将其设为静态有什么问题吗,无论如何它会损害 uuid 的唯一性吗?
有没有更好的方法呢?
c++ - 如何将特定的 Boost 库编译为 DLL
我正在尝试在我的项目中嵌入 boost uuid 包。为方便起见,我们只想包含一些 DLL,就像我们使用的大多数库一样。我不知道如何只获取 uuid 包的 DLL(以及任何必要的依赖项)。我已经尝试正常构建 b2、bcp 以及我能找到的任何其他东西,但我得到的只是许多库的源代码或 DLL 的副本,而不是 uuid,这是我唯一需要的。
如果它有所作为,这是针对 Windows 应用程序的。我们有很多不同环境的开发人员,他们真的很喜欢可以包含在源代码控制中的东西(比如 DLL,但我愿意接受其他选项),这样每个人都不必安装 boost 和设置它同样的方法。理想情况下,我们也希望只需要 boost/uuid 和任何依赖项,而不是整个庞大的库。
c++ - 使用默认 mt19937 RNG 生成的 boost UUID 对于会话 ID 是否安全?
我需要生成 UUID 以用作不可预测/可猜测的会话 ID。
这可以使用boost 的 UUID 库轻松完成:
返回的 UUID 可以很容易地转换为字符串。
上面的代码等价于:
所以我们使用的是 Mersenne Twister 19937 伪随机数生成器。看起来 boost 需要认真对待它的播种任务。
但是,我想知道是否可以通过使用像boost::random_device这样的非确定性 RNG 来获得重要的安全性,以及它将如何影响 UUID 生成的速度。
感谢具有安全洞察力的人的建议。
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 版本。
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)
也失败并出现多个错误。
c++ - x86 内在函数在 boost::uuids::operator <
我正在使用boost::uuids
内部地图(labeled_graph
实际上),所以我需要一个正常工作的operator <
. 不幸的是,它不是,如果BOOST_UUID_USE_SSE2
启用(因此,uuid_x86.hpp
被使用)。
这是示例代码:
使用时uuid_x86.hpp
,operator<
不一致——在两种情况下都返回 false:
禁用基于内在的标头会使事情恢复正常:
这只能使用特殊的 UUID (1
和2
) 重现,完全随机的 id 不会揭示这个问题。
我有带有 libboost 1.58 的 Ubuntu Xenial。如果重要的话,CPU是i7-6600U。我错过了什么吗?
c++ - Boost::UUID 设置具体值
在 Java UUID 类中,有一种方法可以设置上限和下限 long 来为 UUID 创建特定值。
UUID test(-1, -1);
将生成 UUID:ffffffff-ffff-ffff-ffff-ffffffffffff
是否有类似的方法可以在 C++ 中使用 BOOST UUID 创建一个,然后创建它的字符串版本并将其转换回 UUID?