草庐IT

ZN5boost

全部标签

c++ - boost::asio::ip::tcp::resolver::iterator 是做什么的?

我从C++中的boostasio编程开始,在查看示例时,我无法理解boost::asio::ip::tcp::resolver::iterator是什么做。代码:boost::asio::io_serviceio_service;tcp::resolverresolver(io_service);tcp::resolver::queryquery(argv[1]);tcp::resolver::iteratorendpoint_iterator=resolver.resolve(query);tcp::resolver::iteratorend;tcp::socketsocket(io

c++ - boost::optional 到 bool 的转换

如何防止这段代码的最后一行被编译?#includeintmain(){typedefboost::optionalint_opt;int_optopt=0;boolx=opt;//最后一行不检查opt包含的int值,而是编译为类型转换为bool,这似乎不是用户想要的。安全的bool习语似乎与此相关? 最佳答案 boost::optional的全部意义在于启用这样的代码:voidfunc(boost::optionaloptionalArg){if(optionalArg){doSomething(*optionalArg);}}所以

c++ - 更改 boost::property_tree 读取将字符串转换为 bool 值的方式

我迷失在boostproperty_tree的头文件中,并且由于缺乏关于较低层的文档,我决定询问有什么简单的方法可以覆盖流转换器以更改bool值的方式被解析。问题是在属性树的输入端,有用户,他们可以修改配置文件。可以通过多种方式指定bool值,例如:dosomething.enabled=truedosomething.enabled=trUEdosomething.enabled=yesdosomething.enabled=ONdosomething.enabled=1默认行为是检查0或1,然后使用std::ios_base::boolalpha让流尝试以适合当前语言环境的方式解析

c++ - Boost 日志、GCC 4.4 和 CMake

我正在尝试使用GCC4.4.5、CMake2.8.2和Boost1.53.0在Linux上运行一个简单的boost.log示例。编译boost和boost日志成功,但是在将我的测试程序链接到boost.log时,我一直遇到问题。我使用以下CMakeLists.txt文件:cmake_minimum_required(VERSION2.8)project(QuantibBoostLogTest)#Includeboostheadersset(Boost_USE_STATIC_LIBSON)set(Boost_USE_MULTITHREADEDON)find_package(Threads

c++ - 使用 Boost.Asio 执行干净关机的标准方法

我正在使用Boost.Asio用C++编写一个跨平台的服务器程序。遵循thispage,上的HTTP服务器示例我想在不使用特定于实现的API的情况下处理用户终止请求。我最初尝试使用标准C信号库,但一直无法找到适合Asio的设计模式。Windowsexample's设计似乎与最接近的信号库相似,但存在一种竞争条件,即在服务器对象被销毁后可以调用控制台ctrl处理程序。我试图避免C++标准规定的未定义行为。是否有标准(且正确)的方式来停止服务器?为了说明使用C信号库的问题:#include#include#includeusingstd::signal;usingboost::asio::

c++ - 使用 boost::lock_guard 进行简单的共享数据锁定

我是Boost库的新手,我正在尝试实现一个在共享队列上运行的简单生产者和消费者线程。我的示例实现如下所示:#include#include#includeboost::mutexmutex;std::dequequeue;voidproducer(){while(true){boost::lock_guardlock(mutex);std::coutlock(mutex);if(!queue.empty()){std::cout这段代码按我的预期运行,但是当main退出时,我得到/usr/include/boost/thread/pthread/mutex.hpp:45:boost::

c++ - 使用 Boost.GIL 创建图像

我一直在尝试阅读boost::gil文档,但它介于缺乏和复杂之间。废话不多说,我需要一个关于如何执行以下操作的示例:创建一个图像,例如512x512。用红色像素填充它。写入PNG。我在gil的文档中根本找不到任何关于这样做的内容。特别是创建图像或填充像素部分。如果有人能帮忙,谢谢。 最佳答案 我还没有使用过GIL,但我也想学习它。看过designguide并用谷歌搜索了theerrorrelatedtolibpng,看起来最简单的例子是#definepng_infopp_NULL(png_infopp)NULL#defineint_

c++ - 如何正确捕获 std 和 boost 异常

请告诉我如何在boost::exception中正确使用try/catch。这是一个例子voidSettings::init(conststd::string&filename){usingboost::property_tree::ptree;try{read_xml(filename,pt);}catch(boost::exceptionconst&ex){LOG_FATAL("Can'tinitsettings.%s",/*hereisthequestion*/);}}我也需要catchstd::exception吗?我不能让我的应用程序失败,所以我只需要记录所有内容。统一更新:

c++ - boost:algorithm::join() 可以连接一个 float 容器吗?

Boost连接可用于连接字符串容器,可选地由分隔符字符串分隔,如下例所示:Agoodexampleforboost::algorithm::join我的STL技能很弱。我想知道是否有任何方法可以对数字容器(float、double、整数)使用相同的函数?似乎应该有一些一两行来适应其他类型。还有STL的复制功能,这里有一个很好的例子:Howtoprintoutthecontentsofavector?但我不喜欢它在每个元素之后添加分隔符字符串的方式。我只想使用boost。 最佳答案 当然,您可以结合boost::algorithm::

c++ - 如何使用 C++ Boost 解析 JSON 数组?

我有一个包含一些JSON内容的文件,如下所示:{"frame":{"id":"0","points":[["0.883","0.553","0"],["0.441","0.889","0"],]},"frame":...}如何使用C++和Boostptree解析double组的值? 最佳答案 使用迭代器,Luke。首先,你必须解析文件:boost::property_tree::ptreedoc;boost::property_tree::read_json("input_file.json",doc);...现在,因为您似乎在顶级