草庐IT

boost-pool

全部标签

c++ - boost asio 和 shared_ptr 的扩散

我最近开始使用boost。到目前为止,大多数事情都非常简单。但是让我发疯的一件事是shared_ptr在整个boost过程中的扩散。即使在简单的示例中,也会使用shared_ptr。所以我的问题是,如果我使用boost来接受tcp连接然后处理它们。只要我保证在堆上创建的对象(boost::asio::ip::tcp::socket,以及将为异步方法回调的类)在我完成使用tcp之前不会被删除,那么我不需要shared_ptr对吗?我写了一个简单的tcp服务器和客户端,没有使用共享ptr,它可以工作。但我只是想要一些外部确认,以证明我的评估是正确的。此外,根据您的经验,您是否曾经需要使用s

c++ - 如何使boost线程自毁? (C++)

我有一个具有某些功能的类:voidworkerFunc(intClassVariable){boost::posix_time::secondsworkTime(classVariableA);std::cout我想在线程中。和其他一些我想像这样工作的功能while(1){boost::threadworkerThread(workerFunc(ClassVariableB));}所以每次它都会创建线程。但我需要的是该线程在完成时自动销毁自身。怎么办? 最佳答案 您不必为此做任何事情。您只需确保线程真正完成(即没有无限循环等)。

c++ - Boost:如何设置程序优先级?

如何使用BoostC++库设置程序/线程优先级(当谈论线程时,我指的是使用Boost库创建的线程)?我的意思是跨平台方式... 最佳答案 boost本身没有通用的跨平台优先级支持。#ifdef是你的friend...请参阅Tom对win32解决方案的回答。在Linux上你会使用nice打电话(或者可能是setpriority)。不要被那些调整进程优先级的文档声明所拖延;在Linux上,线程只是一个与其他进程共享内存空间的进程。如果您获得更好的“top”版本,其中列出了各个线程,您可以看到每个线程的良好级别。请注意,具有普通用户权限的

c++ - 在 OSX 上使用 Boost 线程时访问相机时出现问题

我正在尝试使用OpenCV打开相机。当我在主线程中打开相机时,这工作正常,但是当我尝试在Boost线程中打开相机时,它失败了。我无法用谷歌搜索为什么会这样。我假设它与Boost线程的权限有某种关系。以下工作正常:#include#include#includeusingnamespacecv;voidopenCamera(){PtrcapPtr(newVideoCapture(0));//openthedefaultcamera}intmain(){openCamera();}我的相机会短暂打开,之后我会收到消息“清理相机”,正如人们所期望的那样。但是当我通过Boost线程尝试相同的操

c++ - 使用 boost.python 从 C++ 将变量导出到 python

例如,我在C++中有一个变量:constfloatPi=3.1415926535898f;使用boost.python将其导出到python模块的最佳方法是什么?我想在全局范围内将其作为变量访问。 最佳答案 似乎可以很容易地使用:boost::python::scope().attr("Pi")=Pi; 关于c++-使用boost.python从C++将变量导出到python,我们在StackOverflow上找到一个类似的问题: https://stacko

c++ - boost 拆分使用率

我有一个格式为[id1,id2,id3]的字符串.我正在使用boostsplit来拆分字符串并将其填充到vector中。boost::split(ids,message,boost::is_any_of("[,]"));ids是我声明为std::vectorids的vector.现在只有vector的奇数索引包含id,偶数是空的。谁能告诉我可能是什么原因以及如何解决它。 最佳答案 boost::algorithm::split(ids,message,boost::is_any_of("[,]"),boost::algorithm:

c++ - 通过 STL 或 Boost 引入虚拟参数

假设有人想用随机数填充一个vector。则有如下明显的解决方案:vectorresult;result.resize(n);for(inti=0;i好的,它显然有效,但我想了解摆脱for循环的最简单的STL/Boost方法是什么。使用std::transform很诱人,但它需要一个带有一个参数的函数。有什么好的STL方法可以在函数中引入伪参数吗? 最佳答案 C++标准库有std::generate()和std::generate_n();例如:#include#include#include#include#includeintge

c++ - 如何转发声明 boost::ptree::iterator

我想在我的项目中使用boostptree,但由于ptree.hpp导致包含另外1000个头文件,这大大增加了编译时间(例如从1秒到7秒),并且因为它在20多个不同的cpp文件中需要这是NotAcceptable(预编译的header不会改善太多)。所以我正在考虑将boostptree封装在我自己的类中,比如//myptree.h#includeclassmyptree{private:boost::property_tree::ptree*m_tree;public:...//addingnew(singlevalue)memberstothethetreevoidput(consts

c++ - 使用 Boost JSON 解析器的 JSON 格式化错误

我正在尝试使用Boost从我的Firefox配置文件夹中读取一个名为sessionstore.js的JSON文件,其中保存了当前/上一个Firefoxsession的信息以供恢复之用。我写了一个基于XML-basedtutorial的程序从Boost网站,只需将XML部分换成JSON部分,如下所示#include#include#include#include#include#includeusingboost::property_tree::ptree;usingnamespacestd;conststringFILENAME="sessionstore.js";conststrin

c++ - BOOST uBLAS 矩阵乘积极慢

有没有办法boostboostublas产品的性能?我有两个矩阵A,B,我想对其进行多重/添加/子/...在MATLAB与C++中,对于2000x2000矩阵运算,我得到以下时间[s]OPERATION|MATLAB|C++(MSVC10)A+B|0.04|0.04A-B|0.04|0.04AB|1.0|62.66A'B'|1.0|54.35为什么这里会有这么大的性能损失?矩阵只是真正的double。但我还需要正定、对称、矩形积。编辑:代码很简单matrixA(2000,2000);//FillMatrixAmatrixB=A;C=A+B;D=A-B;E=prod(A,B);F=pro