草庐IT

boost-uuid

全部标签

c++ - 从给定的嵌套 boost-variant 类型创建一个新的 boost-variant 类型

假设我有一个嵌套的boost::variant-类型TNested包含一些类型和一些其他boost::variant类型(它本身不能再次包含boost::varianttypes,因此不会有递归)。我正在寻找模板别名flatten这将评估为boost::variant类型没有嵌套boost::variants,例如TFlatten,而可能的重复类型正在被删除,例如int只出现一次。我真的不知道这是否能以某种方式实现。#include#include#includestructPerson;typedefboost::variant,boost::variant>TNested;type

c++ - Clang 模块与 std <iterator> 和 <boost/move/iterator.hpp> 交互

(有关我正在使用的特定版本的Boost和Clang的信息,请参阅问题结尾)使用新的实验性-fmodules从master/HEAD在Clang中编译功能,使用如下所示的命令行选项编译以下文件时出现构建错误:#include#include编译命令及错误:anhall@leviathan:/bin/clang++-ofile.o-cfile.cpp--std=c++1z-stdlib=libc++-fmodulesInfileincludedfromfile.cpp:2:Infileincludedfrom/usr/local/include/boost/move/iterator.hp

c++ - Boost Log 的普通记录器的 "lazy evaluation"是如何工作的?

[跟进Checkboost::logfilterexplicitly?]以下示例使用来自BoostLog的普通记录器.它输出1,表明expensive()只被调用了一次。它是如何工作的?为什么expensive()没有被调用?LiveOnColiru#include#include#includeintcount=0;intexpensive(){return++count;}intmain(){boost::log::core::get()->set_filter(boost::log::trivial::severity>=boost::log::trivial::warning)

c++ - 如何使用 gdb 查看 boost::multi_index 哈希索引的数据

我想使用gdb查看boost::multi_index(版本1.67.0)包含的数据。首先我尝试了https://github.com/ruediger/Boost-Pretty-Printer.似乎不支持散列索引,例如hashed_unique。我注意到如果第一个索引是受支持的类型,例如sequenced,Boost-Pretty-Printer可以正常工作。但是,我现在无法编辑代码。我需要调试核心文件和二进制可执行文件。我试图通过散列索引来理解multi_index的内部结构。我写了下面的测试代码:#include#include#includenamespacemi=boost:

c++ - 有人可以提供使用 boost iostreams 查找、读取和写入 >4GB 文件的示例吗

我读到boostiostreams据说支持以半可移植方式对大文件进行64位访问。他们的常见问题解答提到64bitoffsetfunctions,但没有关于如何使用它们的示例。有没有人使用这个库来处理大文件?一个简单的例子,打开两个文件,寻找它们的中间,然后将一个文件复制到另一个文件会很有帮助。谢谢。 最佳答案 简答只包含#include并使用seek功能如boost::iostreams::seek(device,offset,whence);在哪里device是文件、流、streambuf或任何可转换为seekable的对象;of

c++ - 如何使用 Boost.Asio 解析主机(仅)?

根据documentationboost::asio::ip::tcp::resolver::query为了解析它应该接收服务的主机如果我想解析与端口无关的主机怎么办?我到底应该怎么做?应该我指定虚拟端口? 最佳答案 在onepostintheboostmailinglist其他人似乎是这样做的(复制、重新格式化、更改服务编号,没有别的):namespacebai=boost::asio::ip;bai::tcp::endpointep(bai::address_v4(0xD155AB64),0);//209.85.171.100:

c++ - Boost.Bind - 理解占位符

我试图理解以下示例,它类似于(但不等于)之前在SOHelpunderstandingboost::bindplaceholderarguments上发布的示例:#include#includestructX{intvalue;};intmain(){Xa={1};Xb={2};boost::bind(std::less(),boost::bind(&X::value,_1),boost::bind(&X::value,_2))(a,b);}这怎么可能,最外层的绑定(bind)函数知道它必须将第一个参数传递给第二个绑定(bind)(期望_1),并将第二个参数传递给第三个绑定(bind)(

C++ - boost 获取问题

有人知道boost::get对于boost::variant是一个消耗性能的操作或者不是。现在我正在重构一个性能关键部分中的一些旧代码,其中“变体”是由容器为每种可能的类型和相应的enum实现的。.显然,这很快,但很丑,现在当我必须重构代码以便它可以与另一种类型一起工作时,我想摆脱旧的代码部分并且将其替换为boost::variant.此外,我不能简单地“分析两个变体并进行比较”,因为这种重构很麻烦,而且会非常耗时。所以,如果有人知道如何boost::get执行与通用enum-based的比较类型调度,如果您能分享这些知识,我将不胜感激。还有另一种使用boost::variant的变体

c++ - Boost Spirit Qi Re-Establish skipping with custom skip 语法

到目前为止,我有一个语法一直在使用标准的boost::spirit::ascii::space/boost::spirit::ascii::space_type船长。我有一些使用船长的规则和一些不使用的规则,比如qi::rule(),ascii::space_type>expression;qi::rule()>term;当我在跳跃式非终结符(如expression)内部使用非跳跃式非终结符(如term)时,一切都像我期望的那样工作-空格只在内部起作用term非终结符。此外,到目前为止,我一直很好地包括在不使用qi::skip重新建立跳过的非终端内部使用skipper的非终端,例如in

c++ - Boost.Test 错误消息不再显示在 VS2010 的错误列表中

我正在为nativeC++项目使用Boost.Test单元测试框架。一切正常,但在升级到VisualStudio2010后我遇到了一个问题:在测试作为生成后步骤运行后,有关失败测试的消息不再显示在错误列表中。这是一个遗憾,因为Boost.Test与nativeC++项目的组合最接近(尽管仍然很远)我习惯于从单元测试管理的项目中获得舒适感。我正在使用Boost.Test作者推荐的配置here.任何人都可以帮助解决这个小问题,但有点让人感觉不舒服吗?问候,保罗 最佳答案 如果你不想等待发布,想自己修复格式化程序打开BOOST_PATH\