草庐IT

ZN5boost

全部标签

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\

c++ - Boost asio ConstBufferSequence - C++ 模板

我希望获得有关C++模板的一些指导。我一直在使用boost::asio库通过TCP进行通信。到目前为止,我一直在使用内置于boost::asio库中的存储容器。例如:boost::arraybuf;boost::system::error_codeerror;size_tlen=socket.read_some(boost::asio::buffer(buf),error);要从套接字读取数据,我只需将boost::asio::buffer类型的缓冲区包裹在我的boost::array对象周围。这工作正常,但现在我想在相反的方向工作。也就是说,我想写回套接字,从我已有的一些自定义存储类

c++ - boost 变体 : How to model JSON?

我正在尝试使用BoostSpirit存储JSON对象将JSON字符串解析为递归数据结构:Value这是我的代码:#include#include#include#include#include#includestructJsonNull{};structJsonValue;typedefstd::mapJsonObject;typedefstd::vectorJsonArray;structJsonValue:boost::variant{};JsonValueaval=JsonObject();编译时出现错误:ErrorC2440:'initializing':cannotconve