草庐IT

boosting

全部标签

c++ - Boost::Spirit::QI 解析器:解析元素的索引

是否有可能(使用Boost::Spirit::QI)从逗号分隔的字符串中解析数字,以便我获得每个已解析数字的索引?假设我有一个字符串"23,123,65,1"并且我想将这些数字中的每一个插入到给定位置(0,1,2,3)的矩阵中。一种方法是将数字解析为std::vector,然后将它们复制到矩阵行,但速度不是特别快。目前我正在使用vector变体:Matrixdata(10,4);introw=0;intcol=0;std::stringstr="23,123,65,1";std::vectorres;if(qi::parse(str.begin(),str.end(),qi::doub

c++ - 使用 boost::asio 的 AF_NETLINK (netlink) 套接字

我正在编写基于this的多播客户端/服务器应用程序和this;效果很好。但是,当计算机中事件网络接口(interface)的数量发生变化时,我还需要做一些事情,比如thispage的示例部分中的程序。我想我应该使用boost::asio::local中的工具,但我不确定我应该使用boost::asio::local::datagram_protocol还是boost::asio::local::stream_protocol或者...如何做尽可能相似的事情的例子会很有帮助。谢谢。 最佳答案 正如您所注意到的,必须编写一些额外的代码才

c++ - 使用不同的类类型重复 Boost 单元测试

我有两个类共享完全相同的API和功能(它们包装不同的第3方API以提供相同的功能)。这两个类不有共同的基类/接口(interface)。我对其中一个进行了boost单元测试,并想在另一个上运行完全相同的测试,但现在我只知道如何复制粘贴测试并查找/替换类名。除了在两个地方更新测试很烦人之外,这还意味着不能保证两个类的测试是相同的。有什么方法可以“模板化”测试用例吗?如果没有,你会如何解决这个问题?到目前为止我能想到的是类似的东西(请原谅伪代码):templatevoidrunTests(){Tt;//dotestshere}BOOST_AUTO_TEST_CASE(test_X){run

c++ - boost::filesystem::remove_all(path) 是如何工作的?

我正在尝试使用boost::filesystem::remove_all(path)从特定路径中删除所有目录、子目录和包含的文件。如果文件在另一个程序中打开,我还想显示一条错误消息。在这种情况下boost::filesystem::remove_all(path)会抛出异常吗?或者有其他方法可以实现吗? 最佳答案 这不适合发表评论,所以我发布为答案只需查看源代码:http://www.boost.org/doc/libs/1_55_0/libs/filesystem/src/operations.cppBOOST_FILESYSTE

c++ - 为什么 map 上的 BOOST_FOREACH 仅适用于 typedef

我试图通过map编写一个简单的循环元素,我想知道为什么我使用的第一种语法不起作用/无法编译?我写的第一个版本如下,它不能用VS'2008/boost版本1.44编译:std::mapmyMap;...BOOST_FOREACH(map::value_type&p,myMap){}现在,如果我像下面这样重写代码,编译就可以了,但为什么呢?typedefstd::mapmyMap_t;myMap_tmyMap;...BOOST_FOREACH(myMap_t::value_type&p,myMap){} 最佳答案 它是一个预处理器宏,它

c++ - boost 日志记录类属性

我正在尝试为我的应用程序做一个日志。我想添加一个属性,这样我就可以知道日志属于哪个类。我已经开始测试它是否有效:#include#include#include#include#include#include#includeenumseverity_levels{debug,info,warning,error};typedefboost::log::sinks::synchronous_sinkSinkSysLogBackEnd;typedefboost::log::sources::severity_loggerBoostLogger;std::ostream&operator(l

c++ - 用 boost::shared_ptr<std::list<T>> 初始化 boost::shared_ptr<std::vector<T>>

我想初始化一个boost::shared_ptr>vec在构造函数中使用boost::shared_ptr>list初始化列表?这可能吗?我试过这个:测试.hppclassTest{public:Test(boost::shared_ptr>list);private:boost::shared_ptr>vec;};测试.cppTest::Test(boost::shared_ptr>list):vec(list->begin(),list->end()){}部分错误信息:Test.cpp:Inconstructor‘Test::Test(boost::shared_ptr>>)’:T

c++ - std::string& 与 boost::string_ref

如果我在std::string&上使用boost::string_ref还重要吗?我的意思是,在处理字符串时,使用boost::string_ref真的比std版本更有效吗?我真的不明白这里提供的解释:http://www.boost.org/doc/libs/1_61_0/libs/utility/doc/html/string_ref.html.真正让我感到困惑的是std::string也是一个仅指向分配内存的句柄类,并且自c++11以来,具有移动语义的复制操作在上面的文章中提到不会发生。那么,哪个更有效? 最佳答案 strin

c++ - 如何在 Travis CI 中使用最新的 boost 版本?

我尝试通过多种方式在TravisCI环境中安装boost1.64。但他们都没有成功。在我第一次天真的尝试中,我只是在travis脚本中添加了以下行:install:-sudoapt-getinstalllibboost1.64-all-dev结果是错误信息:找不到包libboost1.64-all-dev在第二次尝试中,我指定了具有必要的boost版本的存储库。before_install:-sudoadd-apt-repository-yppa:nschloe/boost-nightly-sudoapt-getupdate-qqinstall:-sudoapt-getinstalll

c++ - boost.asio 如何发现我的服务器应用程序正在监听哪个端口?

我有点奇怪,当客户端应用程序连接到服务器时,boost.asio不使用基本概念——使用IP地址和端口。可能是我对Boost有点菜鸟-我接受-但无论如何我不明白。所以,我有这样的代码让客户端连接到本地主机上的服务器:boost::asio::io_serviceio_service;tcp::resolverresolver(io_service);tcp::resolver::queryquery("localhost","daytime");tcp::resolver::iteratorendpoint_iterator=resolver.resolve(query);tcp::re