草庐IT

Boost-asio

全部标签

c++ - 为什么 Boost.Range is_sorted 不需要前向迭代器?

C++11算法std::is_sorted和std::is_sorted_until都需要ForwardIterator。然而,Boost.Range版本boost::is_sorted只需要与InputIterator相对应的SinglePassRange。特别是,它委托(delegate)给一个基于迭代器的实现,如下所示:templateinlineIteratoris_sorted_until(Iteratorfirst,Iteratorlast,Compc){if(first==last)returnlast;Iteratorit=first;++it;for(;it!=las

c++ - 如何快速测试新的 Boost 版本和库?

与许多C++程序员一样,我非常欣赏Boost库,并在许多项目中使用它们。因此,我喜欢及时了解定期添加的新库。但是,我经常发现自己想尝试一些新功能而无需在我的计算机上重新安装另一个版本。基本上,我希望能够快速尝试一些代码片段,而无需经历下载源代码和编译它们的负担。我尝试在在线编译器上这样做,例如ideone或codepad,但他们提供的Boost版本不是最新的(1.39forideone和1.34forcodepad)。你知道有什么在线编译器可以让我测试最新版本的Boost吗?如果没有,您如何继续仅测试某些库?如果我对svn存储库进行部分checkout,我如何确定我获取了所有依赖项?

c++ - 总结两个 boost::accumulator_set 实例

我最近发现了优秀的库boost::accumulators,我想用它来代替我的一些累加统计的代码。我在文档中找不到的一件事是对两个累加器集求和的能力,如operator+=例子:usingnamespaceboost::accumulators;typedefaccumulator_set>AccumSet;classFoo{AccumSetacc;public:Foo&operator+=(constFoo&that){this->acc+=that.acc;//error!nosuchoperatorreturn*this;}doubleGetVariance(){returnva

c++ - 通过 BOOST_FOREACH 使我的 C++ 类可迭代

我有一个类,我想公开一个结构列表(其中只包含一些整数)。我不想让外界修改这些数据,只是遍历它并读取它们示例:structTestData{intx;inty;//otherdataaswell}classIterableTest{public://exposeTestDatahere};现在在我的代码中我想像这样使用我的类:IterableTesttest;BOOST_FOREACH(constTestData&data,test.data()){//dosomethingwithdata}我已经读过这篇文章http://accu.org/index.php/journals/1527

c++ - boost::multi_array View 和子数组之间有什么区别

在查看文档后,我无法理解这一点。我可以写这样的代码typedefboost::multi_arraydata_t;//3d--typedefdata_t::array_view::typedata_3d_view_t;//2d--typedefdata_3d_view_t::referencedata_2d_subarray_t;typedefdata_t::array_view::typedata_2d_view_t;然后我可以通过data_2d_subarray_t或data_2d_view_t类型访问二维切片。它们有什么区别?我可以用一个做什么,而我不能用另一个做什么?有什么性能

c++ - boost::asio::io_service 定时器和帖子占用的队列长度

我是boost::asio的新手,但我正在从事一个已经存在几年并广泛使用asio的项目。我目前的任务是添加关于系统正在做的各种事情的定期指标。其中一项指标是观察boost::asio::io_service工作队列和定时器队列在任意运行时间段的深度。所以我需要能够询问boost:asio::io_service对象它的队列中有多少东西。为了说明我的要求,请考虑以下内容:boost::asio::io_serviceasio_service;asio_service.post(boost::bind(do_work,"eat"));asio_service.post(boost::bin

c++ - 如何配置 boost 日志,用于旋转和附加写入?

如何配置boost日志,用于旋转和追加写入?重启程序后,不要清除日志文件。intinit_log(){typedefsinks::synchronous_sinkfile_sink;boost::shared_ptrsink(newfile_sink(keywords::file_name="app.log",//onlyonefiles//keywords::open_mode=(std::ios::out|std::ios::app),//isnotappendkeywords::open_mode=(std::ios::out|std::ios::app),//isnotrota

c++ - 对 boost 库的依赖没有完整路径

我的动态库已成功构建,依赖于使用自定义前缀(./b2install--prefix=PREFIX)构建和安装的boost库。但是,当我在我的库上运行otool-L时,我得到如下输出:...libboost_regex.dylib(compatibilityversion0.0.0,currentversion0.0.0)libboost_system.dylib(compatibilityversion0.0.0,currentversion0.0.0)...与其他依赖项不同,它没有提供这些boost库的完整路径。当应用程序加载我的库时,这会导致运行时错误。我知道可以使用install

c++ - 为boost创建的共享内存设置权限

我们像这样打开一个由另一个进程创建的boost共享内存boost::interprocess::managed_shared_memorysegment(boost::interprocess::open_only,"SharedMem");但是如果创建共享内存的进程是root用户,那么读取它的进程,如果是普通用户,将会失败,原因如下:terminatecalledafterthrowinganinstanceof'boost::interprocess::interprocess_exception'what():Permissiondenied我应该怎么做才能避免这种情况?那就是把

c++ - 用于进程间共享内存的非 Boost STL 分配器?

由于我工作的政策,我无法使用高于1.33.1的Boost版本,也无法使用高于4.1.2的GCC版本。是的,这是垃圾,但我对此无能为力。Boost1.33.1不包含进程间库。也就是说,我的一个项目需要将std::map(或者更可能是std::unordered_map)放入共享内存。当进程由单个进程(“服务器”)加载并由许多其他进程读取时,它只会被写入/修改一次。我以前没有做过共享内存IPC,所以这对我来说是一个相当新的领域。我查看了shmget(),但似乎我无法持续使用相同的共享内存key进行分配(因为我认为STL容器分配器需要)。是否有任何其他使用共享内存的NON-BOOSTSTL分