草庐IT

boosting

全部标签

c++ - 如何检测 Boost.PropertyTree 的解析/读取失败?

文档并没有真正说明。我知道我可以将它交给它一个ifstream,这样我就可以检查以确保它是打开的,所以这种情况大部分都得到了处理。但是当执行boost::property_tree::ini_parser::read_ini(ifstream_object,property_tree_object);如何检测文件格式是否错误?我有什么方法可以获取诊断信息,例如哪里解析失败? 最佳答案 只捕获异常。基本PropertyTree异常类是boost::property_tree::ptree_error源自std::runtime_err

c++ - boost::shared_polymorphic_downcast 在 boost 1.53.0 中消失了。我应该用什么代替?

boost::shared_polymorphic_downcast在boost1.52.0之间消失了和1.53.0.releasenotes中对此没有提及。,并且提交(r81463)仅包含神秘的日志消息“更新shared_ptr转换。”我不清楚我现在应该使用什么,或者为什么删除此功能。有人可以帮忙吗?编辑:感谢大家富有洞察力的评论。我发现自己有点沮丧,因为boost会在没有任何理由或通知的情况下在版本中做出向后不兼容的更改,而且我也感到沮丧的是它们删除了有用的功能。但是根据响应,我可以用两行代码而不是一行代码来完成我想做的事情,所以我认为这就足够了。尽管如此,我仍将这个问题“悬而未决

c++ - Boost spirit 将整个比赛作为一个字符串

我正在尝试使用boostspirit框架定义我自己的语法,并且我正在定义这样一个匹配规则:value=(char_('"')>>(*qi::lexeme[char_('\\')>>char_('\\')|char_('\\')>>char_('"')|graph-char_('"')|char_('')])[some_func]>>char_('"'));我想将一个Action-some_func-分配给它的一部分,并将整个匹配字符串作为参数传递。但不幸的是我会得到类似vector的东西.我能否以某种方式将整个数据作为具有大小的char*、std::string或什至void*获取?

C++ boost 大数存储

因此,基于questionIaskedearlier,我下载并设置了boost。我有这段代码:#include#includeusingnamespacestd;usingnamespaceboost::multiprecision;voidmain(){mpz_intN(567014094304930933548155069494723691156768423655208899778686163624192868328194365094673392756508907687565332345345678900976543567890976543565789054335678097654

c++ - boost Asio : Some questions about the tutorial (A synchronous daytime server/client)

我正在尝试使用BoostAsio而不是RakNet,所以我试图按照Boost网站上的示例进行操作,但我有一些问题没有得到解答。这是链接:http://www.boost.org/doc/libs/1_55_0/doc/html/boost_asio/tutorial/tutdaytime1.html请注意,我的教程在客户端和服务器上都有效。1)为什么查询需要字符串“daytime”?在服务器设置中找不到它。客户端似乎只在我使用该字符串时连接。(尝试使用“测试”但未连接)2)为什么我不需要给客户端一个连接端口?它是自己搜索这个端口还是在那里并选择手动设置它?提前致谢。

c++ - 一直读到 boost::asio::streambuf 中的字符串定界符

我想使用非常方便的Boostasync_read_until阅读消息,直到我得到\r\n\r\n分隔符。我喜欢使用这个定界符,因为它很容易使用telnet进行调试并制作多行命令。我只是用两个新行表示命令结束。我这样调用async_read_until:voiddo_read(){boost::asio::async_read_until(m_socket,m_input_buffer,"\r\n\r\n",std::bind(&player::handle_read,this,std::placeholders::_1,std::placeholders::_2));}我的处理程序现在

c++ - 如何使用 boost::mpl 编写策略?

我使用了类似下面的东西来为我的应用程序编写策略:策略类如下所示:structPolicy{staticvoidinit();staticvoidcleanup();//...};templatestructCons{staticvoidinit(){CarT::init();CdrT::init();}staticvoidcleanup(){CdrT::cleanup();CarT::cleanup();}//...};编写策略:typedefCons>>MyPolicy;要使用MyPolicy:init_with(...);//...cleanup_with(...);他们打电话的地

c++ - boost::asio:如何使用 async_accept 接受传入连接?

我正在使用boost::asio,我有这样的代码:voidCServer::Start(intport){tcp::acceptoracceptor(m_IoService,tcp::endpoint(tcp::v4(),port));for(;;){shared_ptrpSocket(newtcp::socket(m_IoService));acceptor.accept(*pSocket);HandleRequest(pSocket);}}此代码有效,但我想切换到使用Acceptor::async_accept以便我可以调用Acceptor::cancel来停止接收请求。所以我的新

c++ - 在 BOOST_FOREACH 遍历容器时更改容器?

如果BOOST_FOREACH正在迭代的容器在BOOST_FOREACH范围内发生更改,会发生什么情况?BOOST_FOREACH是否“卡住”初始状态? 最佳答案 在这种情况下,行为是未定义的。看HoistingandIteratorInvalidation在BOOST_FOREACH的官方文档中。 关于c++-在BOOST_FOREACH遍历容器时更改容器?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.

c++ - Boost 选项 - 获取应用程序名称

是否有使用Boost获取应用程序名称的简单方法(可能使用boost::program_options?)事情会是这样的:有argv[0]="c:\foo\bar\appname.exe"我想要var1="appname" 最佳答案 您可以使用boost::filesystem从路径中提取名称。看起来像这样:#includeboost::filesystem::pathp=argv[0];std::stringvar1=p.stem().string(); 关于c++-Boost选项-获取