草庐IT

ZN5boost

全部标签

c++ - Boost.asio 和 UNIX 信号处理

前言我有一个通过Boost.Asio运行的多线程应用程序。整个应用程序只有一个boost::asio::io_service,所有的事情都由一组线程在其中完成。有时需要使用fork和exec生成子进程。当child终止时,我需要对其进行waitpid以检查退出代码并收集僵尸。我使用了最近添加的boost::asio::signal_set但在带有linux-2.4.*内核的古老系统下遇到了问题(不幸的是,一些客户仍在使用)。在较旧的linux内核下,线程实际上是进程的一种特殊情况,因此如果一个子线程由一个线程产生,另一个线程无法使用waitpid系列系统调用来等待它。Asio的sign

c++ - Boost.python vs Cython 用于 C++/python 接口(interface)

我知道这已经被问了一千次了,但是我需要选择一个可以将C++函数和方法暴露给python的库。考虑到我的应用程序,主要是一个科学(矩阵)库,以及python生成器的成熟度、支持可用性和性能,我遇到了两个选择:赛通Boost.Python我已经(出于好的或坏的原因)消除了其他选项,如SWIG、SIP、Pybindgen......对这两个库有什么建议吗?这些中的任何一个都具有killer级功能?我的项目有命名空间、嵌套类、回调等。谢谢 最佳答案 Consideringmyapplication,whichmainlyisascienti

c++ - 各种 boost ublas 稀疏 vector 之间有什么区别?

在boost::numeric::ublas中,有threesparsevectortypes.我可以看到mapped_vector本质上是一个从索引到值的STL::map,它将所有未找到的值都视为0(或任何共同值(value))。但是关于compressed_vector和coordinate_vector的信息的文档很少(哈哈)。有人能解释一下吗?我试图弄清楚将项目添加到各种vector的算法复杂性,以及两个这样的vector之间的点积。提供了一个非常有用的答案,compressed_vector与compressed_matrix非常相似.但似乎,例如,compressedrow

c++ - 使用 boost::mpl 的类型列表的排列

我正在尝试创建一个包含给定类型列表排列的列表。当我使用指定列表而不是通过从实际输入中删除来生成新列表时,下面的代码似乎可以正常工作,尽管没有预期的结果。下面的permutation_helper和broken_helper之间的区别证明了这一点。有谁知道为什么mpl::remove在这种情况下似乎没有按预期运行?#include#include#include#include#include#include#include#includenamespacempl=boost::mpl;structtest_type1{};structtest_type2{};structtest_ty

c++ - 我可以使用 Boost 1.55 构建双向协程吗?

当前的Boost1.55实现提供了两种unidirectionalcoroutines.一种是拉式,是一种不带参数,返回值给主上下文的协程;另一种是push-type,它是一个从主上下文接受参数但不返回值的协程。如何将这两者结合起来创建一个既接受参数又返回值的双向协程?从表面上看,这似乎应该是可能的,但我无法完全弄清楚如何使用boost::coroutine中的构建block来做到这一点。在旧的Boost中曾经有一个双向协程,但它现在已被弃用且未记录在案,所以我不应该依赖它。即,我想要类似的东西:voidaccumulate(pull_func&in,push_func&out){in

c++ - 有没有办法打印 boost 程序选项的配置文件

我正在使用boost::program_options从配置文件中获取参数。我知道我可以手动创建一个文件,程序选项会解析它。但我正在寻找一种让程序自动生成文件的方法。意思是打印出选项的名称和它的值。例如:>./main没有选项会生成如下所示的init.cfg[wavepacket]width=1position=2.0[calculationparameters]levels=15然后我会进入该文件使用文本编辑器更改值并使用此文件:>./maininit.cfg解决这个问题的一个好方法是让variables_map拥有operator.这样我就可以将它写入文件。更改值。读取文件。都是一

c++ - boost 上下文库

在Boost的最新版本中,新库Context出现了。阅读文档后,我了解了它的作用,但几乎看不到用例。使用这个库有什么好处?您可以推荐将它用于哪些任务? 最佳答案 它是协程库的基础,截至2012年9月上旬正在审查中,因此它应该会出现在未来的某个版本中。这将允许轻松实现诸如python中的生成器之类的东西。或C#拥有它们。上下文库本身可以与方案的call-with-current-continuation进行比较。和call-with-dynamic-root函数。各种协程、生成器和协作线程的基础。更新:Coroutinelibrary

c++ - Visual Studio 2013 (vs120) 要求错误的 boost 库

我正在尝试使用VisualStudio2013在Windows7上编译我的一个项目。我已经安装了Boost1.53并使用cmake设置了解决方案。现在发生的情况是,boost的编译库的格式为libboost_*-vc120-mt(-gd)-1_53.lib。在链接器项目选项中,在输入选项卡下,我已经验证了我需要的库在那里,实际上编译器能够正确读取它们。但是,出于某种我完全无法理解的原因,链接器也在尝试查找编译为vc110的库。例如:errorLNK1104:cannotopenfile'libboost_filesystem-vc110-mt-gd-1_53.lib'项目选项中列出的平

c++ - 向 Boost 提交库的提示?

夏天快到了,我和一群friend正在为它做准备:)我们决定构建一个编译时任意精度的无符号整数。我们想为库提供一组整数算法(函数)。我们已经看到许多对此类库的请求(SoC2010,C++0xStandardLibrarywishlist)。此外,通常会请求常规运行时bigint,但我们不想陷入内存管理的麻烦。这个想法来自一个名为TTMath的图书馆。,不幸的是,该库仅适用于特定平台,因为该库中广泛使用了Assembly。我们想写一个标准库,依赖于C++标准库和Boost。此外,我们希望在当前编译器中使用可用的C++0x工具,如用户定义的文字等。从技术上讲,这会使库在一段时间内变得非标准,

c++ - 帮助我理解 boost::bind 的用法

请查看JohannesSchaub发布的这个示例,以对vector对进行排序:HowdoIsortavectorofpairsbasedonthesecondelementofthepair?std::sort(a.begin(),a.end(),boost::bind(&std::pair::second,_1)::second,_2));我以为我理解boost::bind,但我对这个有问题。问题1:排序算法需要一个谓词函数作为第三个参数。我在这里看到的是一个bool表达式。我错过了什么?:boost::bind(&std::pair::second,_1)::second,_2)b