草庐IT

ZN5boost

全部标签

C++ 使用 boost fusion adapt_struct 迭代到嵌套结构字段

两个stackoverflowanswers建议使用融合adapt_struct迭代结构字段的方法。该方法看起来不错。但是,如何迭代到本身是结构的字段?根据前面的答案,我想出了下面的代码。问题出在代码无法编译的“#if0”子句处。作为替代解决方案,我创建了“decode()”函数来获取指向目标参数的空指针。这行得通,但在编译时丢失了类型信息。有更好的解决方案吗?structFoo_s{inti;};BOOST_FUSION_ADAPT_STRUCT(Foo_s,(int,i))structBar_s{intv;Foo_sw;};BOOST_FUSION_ADAPT_STRUCT(Bar

c++ - 如何在GCC编译器中启用最高警告级别(Boost被大量使用)

我刚读了一本书,建议在GCC中启用最高警告级别。刚上网查了一下文档,发现参数太多了。我想启用最高警告级别,我应该使用哪个参数?我们在项目中大量使用了Boost。 最佳答案 与具有4个级别的cl相反,gcc只有一组选项可以打开或关闭。正如其他人所提到的,-Wall是默认设置,它已经打开了许多警告。-pedantic选项增加了一些内容。还有-Wextra又是一组...但要真正捕获许多警告,您必须手动添加许多。有一个我喜欢使用的集合,虽然有人告诉我其中有些是矛盾的,但我发现这个列表对我的开发工作相当有用:-Werror-Wall-Wext

c++ - 仅从 boost 中获取必要的 header

我需要提交作业,但我只想包含我实际使用的boost的头文件(我使用了boost::shared_ptr和boost::function)。我试着手动这样做,但我遗漏了一些头文件,每次我去添加它们时,结果发现我遗漏了更多。有没有一种快速简便的方法可以准确找出我实际需要的header?谢谢 最佳答案 bcp命令就是为此而生的:NAMEbcp-extractsubsetsofBoostSYNOPSISbcp--list[options]module-listbcp[options]module-listoutput-pathbcp--re

c++ - 强制 boost::asio::buffer 按值复制

我使用boost::asio::buffer来发送消息voidSend(conststd::string&messageData){socket.async_write(boost::asio::buffer(messageData),...);}并且在io_service线程的某处遇到“字符串迭代器不可取消引用”运行时错误。当我创建对象的变量来存储缓冲区的消息数据时:voidSend(conststd::string&messageData){this->tempStorage=messageData;socket.async_write(boost::asio::buffer(th

c++ - 使用 boost::regex_search 忽略大小写

如何在C++中使用boost::regex_search忽略大小写标志或常量?请发布一个简单的示例。谢谢! 最佳答案 你需要这样的东西boost::regexregex("yourexpressionhere",boost::regex::icase);boost::smatchwhat;stringmystring;boolsearch_result=boost::regex_search(mystring.begin(),mystring.end(),what,regex); 关于c

c++ - "single allocation"对 boost::make_shared 意味着什么

在make_shared的boost文档中,它说:Besidesconvenienceandstyle,suchafunctionisalsoexceptionsafeandconsiderablyfasterbecauseitcanuseasingleallocationforboththeobjectanditscorrespondingcontrolblock,eliminatingasignificantportionofshared_ptr'sconstructionoverhead.我不明白“单一分配”的意思,是什么意思? 最佳答案

c++ - 使用 boost socket ,我只需要一个io_service吗?

在几个不同的线程中具有多个连接。.我基本上是在做一个使用boost/asio.hpp和tcp的基本类。现在我正在阅读:http://www.boost.org/doc/libs/1_44_0/doc/html/boost_asio/tutorial/tutdaytime1.html它说:“所有使用asio的程序都必须至少具有一个io_service对象。”所以我的基类应该有一个静态的io_service(这意味着所有程序只有1个,并且所有不同的线程和连接都将使用相同的io_service对象)或使每个连接都有自己的io_service?谢谢你在前面!更新:好的,所以基本上我希望做的是为

c++ - 为什么我的 C++ 编译器不能推导出 boost 函数的模板参数?

我这样定义一个方法:templatevoidfoo(ArgTarg,::boost::functionfunc){func(arg);}并像这样使用它——例如——:foo(2,[](inti)->void{cout为什么编译器不能推导出类型,因为它肯定是int?我得到'voidfoo(ArgT,boost::function)':couldnotdeducetemplateargumentfor'boost::function'from'anonymous-namespace'::'. 最佳答案 虽然C++lambda是严格单态的,

c++ - 以秒为单位获取 boost::posix_time::time_duration

我正在使用boost::posix_time::ptime来测量我的模拟运行时间和其他东西。假设boost::posix_time::ptimestart,stop;boost::posix_time::time_durationdiff;start=boost::posix_time::microsec_clock::local_time();sleep(5);stop=boost::posix_time::microsec_clock::local_time();diff=stop-stop;现在std::cout以hh:mm:ss.ssssss格式返回时间,我也希望以ss.sss

C++/Boost 文件系统 - 检测到 '_MSC_VER' 不匹配 : value '1700' doesn't match value '1600'

我是C++和Boost的新手。我正在做一个简单的小程序来尝试学习BoostFilesystem库。我已经按照说明构建了Boost库。现在,当我尝试编译这个简单的代码时,我遇到了其中的6个错误。Error5errorLNK2038:mismatchdetectedfor'_MSC_VER':value'1700'doesn'tmatchvalue'1600'inApp.objC:\SOURCE\ConsoleApp2\ConsoleApp2\libboost_filesystem-vc110-mt-gd-1_51.lib(codecvt_error_category.obj)Consol