草庐IT

ZN5boost

全部标签

c++ - 如何使用 boost 可升级互斥量的示例

我有一个多线程服务器应用程序,需要对一些共享内存进行互斥锁。共享内存基本上是sTL映射等。很多时候我只是在看map。但是,我也需要偶尔添加它。例如typedefstd::mapMessageMap;消息映射boost:shared_mutexaccess_;voidProcessMessage(Message*message){//Accessmessage...readsomestufffromitmessage->...UUIDid=message->GetSessionID();//Needtoobtainalockhere.(sharedlock?multiplereaders

c++ - boost::regex_search 可以在 wstring 上完成吗?

这是我尝试过的:std::wstringextractText(std::wstringline){std::wstringtext;boost::regexexp("^.*?PRIVMSG#.*?:(.+)");boost::smatchmatch;if(boost::regex_search(line,match,exp)){text=std::wstring(match[1].first,match[1].second);}returntext;} 最佳答案 使用wregex和wsmatch

c++ - boost 二进制 static_visitor 和 apply_visitor

我有以下代码:typedefboost::variantSearchParameter;enumVisibility{CLEAR,CLOUDY,FOG,SMOKE};classDetectionGenerator:publicboost::static_visitor{public:DetectionGenerator(constEnvironmentalFactors&factors);doubleoperator()(constLandSearchParameter&land,Visibilityvis)const;doubleoperator()(constWaterSearch

c++ - 如何使用 boost::spirit 将单词序列解析为 vector ?

我正在努力学习boost::spirit.例如,我试图将一系列单词解析为vector.我试过这个:#include#includenamespaceqi=boost::spirit::qi;intmain(){std::vectorwords;std::stringinput="thisisatest";boolresult=qi::phrase_parse(input.begin(),input.end(),+(+qi::char_),qi::space,words);BOOST_FOREACH(std::stringstr,words){std::cout这给了我这个输出:'thi

c++ - 不能在非 Boost 版本的 Asio 中使用 asio::placeholders::error

我正在尝试在项目中使用Asio的非Boost版本。我正在编写对stream_protocol::acceptor::async_accept的回调。签名需要传递asio::placeholders::error但当我这样做时,出现以下错误:错误:命名空间“asio::placeholders”中没有名为“error”的成员根据源代码,我可以看到错误存在,但类型为undefined,这对我来说是新的。我错过了什么吗?我应该对库进行某种预处理吗? 最佳答案 简而言之,使用std::placeholders::_1而不是asio::pla

c++ - 如何从格式化字符串中获取 boost::posix_time::ptime

我有一个像“2012-03-28T08:00:00”这样的格式化字符串。我想获取年、月(字符串格式)、日期、小时、分钟、秒和日(字符串格式)。谁能建议我在boost中使用最简单的方法。谢谢 最佳答案 如果现有的from_string()方法不能满足您的需求,那么您可以使用时间输入方面,它允许您自定义解析字符串的格式。在您的情况下,您可以使用ISO扩展格式字符串,这样您就可以使用以下代码来解析您的字符串:boost::posix_time::time_input_facet*tif=newboost::posix_time::time

c++ - 使用 Boost.Serialization 进行序列化

我一直在尝试序列化,但每次我都遇到如下错误:-error:'classstd::vector>'hasnomembernamed'serialize'这是我的源代码和序列化方法,知道我正在使用boost.serializetemplateclassheap{vector*hp;intindex;//indexispointingtofirstemptyplaceafterthelastelementintmaxsize;Tcomp;//comparableobjectdesignedtocomparetheobjectsprivate:friendclassboost::seriali

c++ - BOOST_CHECK_EQUAL 与 pair<int, int> 和自定义运算符 <<

当尝试执行BOOST_CHECK_EQUAL(pair,pair)时,gcc没有找到pair的流运算符,尽管声明了它。有趣的是std::out找到了运算符。ostream&operator&p){s';returns;}BOOST_AUTO_TEST_CASE(works){pairexpected(5,5);pairactual(5,5);std::coutexpected(5,5);pairactual(5,5);BOOST_CHECK_EQUAL(actual,expected);}这不会编译错误:...instantiatedfromhere../boost-atp/relea

c++ - 在 boost::python 的 add_property 中使用 c++11 lambda 作为访问函数(get_signature 因 lambda 而失败)

我正在尝试使用C++11lambda作为boost::python中的访问函数的add_property,以下内容(此示例中并不严格需要lambda,但lambda内部发生的更复杂的事情将需要它,例如验证):#includestructA{A():a(2){};inta;};BOOST_PYTHON_MODULE(boost_python_lambda){boost::python::class_("A")//.def_readonly("a",&A::a)//theclassicalway:worksfine.add_property("a",[](constA&a){returna

c++ - Boost Type Erasure的实践与发现

我正在阅读有关boosttypeerasure的文章,我正在尝试找出潜在的用途。我想在阅读有关该主题的大量文档(看起来很大)时稍微练习一下。引用最多的应用程序领域是客户端和服务器之间的网络/交换数据。你能推荐一些其他的例子或练习,我可以在其中玩这个库吗? 最佳答案 类型删除在非常多的情况下非常有用,以至于它实际上可能被认为是一种从根本上缺失的语言功能,它将泛型和面向对象的编程风格联系起来。当我们在C++中定义一个类时,我们真正定义的是一个非常具体的type和一个非常具体的interface,而这两个东西不一定需要相关。type处理数