草庐IT

boost-pool

全部标签

c++ - 如何告诉 Boost.Test 在第一个失败的测试用例上停止?

我在几个测试套件中订购了许多Boost测试用例。有些测试用例有一个,有些不止一个检查。然而,当执行所有测试时,它们都会被执行——不管有多少失败或通过。我知道,我可以通过使用BOOST_REQUIRE而不是BOOST_CHECK来停止执行一个测试用例并进行多次检查。但这不是我想要的。在第一个测试用例失败后,如何告诉Boost停止整个执行?与运行时解决方案(即运行时参数)相比,我更喜欢编译解决方案(例如,使用全局夹具实现)。 最佳答案 BOOST_REQUIRE将停止测试套件中的当前测试用例,但继续进行其他测试。当您要求“编译解决方案”

c++ - BOOST_BINARY 宏如何解析空格?

考虑以下代码。intvalue1=BOOST_BINARY(100111000011110);有人可以解释一下BOOST_BINARY如何计算那里的int值吗? 最佳答案 这非常非常复杂。这个BOOST库使用由其他宏构造的宏。我将向您展示一些预处理器编程的简化示例:简化的问题:如何让宏在rest的开头添加0或1-就像这个例子:CAT(01)-->01CAT(1100)-->1100所以-不知何故,必须按顺序将两个参数放在它们之间。好吧,我这样做了://startpoint-thisisourdesiredformat#defineC

c++ - 如何使用 -g 调试标志编译 boost?

我想重新编译我们的boost库,但启用了-g调试标志。我一直在阅读并看到我们使用jam构建了boost。虽然我非常了解make,但jam一直让我望而却步,我的挫败感越来越大。 最佳答案 对不起。我知道回答你自己的问题是令人反感的,但我在发帖后不久就弄明白了。cxxflags和cflags属性是我需要使用的,如下所述:http://www.boost.org/boost-build2/doc/html/bbv2/overview/invocation.html在属性部分下。 关于c++-如

c++ - 我应该如何访问 Boost SHA1 哈希?

我想使用boost::uuids::detail::sha1为大型二进制blob创建哈希。参见:boostuuidsha1sha1位于detail命名空间中,因此不应“依赖”。如何在不实例化detail中的对象的情况下为我的blob创建SHA1哈希? 最佳答案 您的选择是:使用boost::uuids::detail::sha1,如果它在未来的版本中发生变化,请及时处理。找到sha1的另一个实现(例如,在Crypto++中),并使用它。 关于c++-我应该如何访问BoostSHA1哈希?

c++ - 如何指定要链接到哪个版本的 boost 库?

我正在尝试将一个用VS2012编写的项目迁移到VS2013。我成功编译了boost1.53.0(我首先尝试了1.54.0,但遇到了一些编译器错误)并获得了类似的库libboost_filesystem-vc120-mt-1_53.lib。但是在尝试构建我的项目时,链接器提示:errorLNK1104:cannotopenfile'libboost_filesystem-vc110-mt-1_53.lib'我一直在我的整个解决方案中寻找一些项目设置,以找出为什么它会尝试加载旧的库版本,但我没有找到任何东西。链接器如何知道要使用哪个库?我该如何解决我的问题? 最

c++ - Boost Spirit X3 无法编译具有可变因子的重复指令

我正在尝试使用具有可变重复因子的BoostSpiritX3指令repeat。基本思想是header+有效载荷,其中header指定有效载荷的大小。一个简单的例子“3123”被解释为header=3,data={1,2,3}(3个整数)。我只能从灵气文档中找到例子。它使用boostphoenix引用来包装变量因子:http://www.boost.org/doc/libs/1_50_0/libs/spirit/doc/html/spirit/qi/reference/directive/repeat.htmlstd::stringstr;intn;test_parser_attr("\x

c++ - 明确检查 boost::log 过滤器?

我有一些琐碎的日志记录:BOOST_LOG_TRIVIAL(trace)现在make_trace_record是一个调用起来有点昂贵的函数(不要问为什么,它很复杂)。我只想在日志当前通过过滤时调用它。我怎样才能做到这一点?我看不到明确调用严重性过滤器的方法。 最佳答案 Boost.Log预先过滤;因此,如果严重性不够高,则不会调用make_trace_record()。为了设置普通记录器的严重性过滤器,调用:boost::log::core::get()->set_filter(boost::log::trivial::severi

c++ - 有没有办法突破 boost::mpl for_each?

真的很简单的问题,让我介绍一下背景:我有一个mpl::vector类型,其中每个类型都有一个id,在运行时我使用mpl::for_each遍历这个vector并找到给定id的匹配类型。但是一旦找到,继续循环就没有意义了,所以-问题是,有没有办法跳出它(不抛出异常)? 最佳答案 为了实现类似find_if的功能,我更改了for_each(将其称为exec_if)以采用bool模板参数。bool指示是否应该执行下一个序列,或者影响提前返回。#include#include#include#include#include#include#

c++ - 如何将 boost::bind 与不可复制的参数一起使用,例如 boost::promise?

有些C++对象没有复制构造函数,但有移动构造函数。例如,boost::promise。我如何使用移动构造函数绑定(bind)这些对象?#includevoidfullfil_1(boost::promise&prom,intx){prom.set_value(x);}boost::functionget_functor(){//boost::promiseisnotcopyable,butmovableboost::promisepi;//compilationerrorboost::functionf_set_one=boost::bind(&fullfil_1,pi,1);//co

c++ - 将 boost.units 中的单位从 angular_velocity 转换为 degrees_per_second

我需要将一般的angular_velocity转换为度/秒。为了说明这个问题,示例boostUnits.cpp:#include#include#include#include#include#include#include#includeintmain(){boost::units::quantitym_speed((30.0*boost::units::si::radians_per_second));std::cout(boost::units::quantity(m_speed*boost::units::degree::degrees/boost::units::si::se