草庐IT

ZN5boost

全部标签

c++ - 为此获得 boost::shared_ptr

我正在广泛使用boost:shared_ptr在我的代码中。事实上,在堆上分配的大多数对象都由shared_ptr持有。.不幸的是,这意味着我无法通过this进入任何接受shared_ptr的函数.考虑这段代码:voidbar(boost::shared_ptrpFoo){...}voidFoo::someFunction(){bar(this);}这里有两个问题。首先,这不会编译,因为shared_ptr的T*构造函数是明确的。其次,如果我强制它使用bar(boost::shared_ptr(this))构建我将创建第二个指向我的对象的共享指针,该指针最终会导致双重删除。这让我想到了

c++ - Boost assert.hpp 文件中的 P::************ 是什么意思?

在boost/mpl/assert.hpp,我看到了这样的东西:templatestructeval_assert{typedeftypenameextract_assert_pred::typeP;typedeftypenameP::typep_type;typedeftypename::boost::mpl::if_c),failed************P::************>::typetype;};如果第一个************可以视为struct的指针失败,则P::************对我来说真的没有任何意义。这是标准的C++吗?

c++ - boost::function 和 boost::bind 是如何工作的

我不喜欢魔术盒散布在我的代码中...这两个类究竟如何工作以允许基本上任何函数映射到函数对象,即使函数具有完全不同的参数集我传递给boost::bind它甚至可以使用不同的调用约定(即成员方法是VC下的__thiscall,但“普通”函数通常是__cdecl或__stdcall对于那些需要与C兼容的人。 最佳答案 boost::function允许任何带有operator()的东西将要绑定(bind)的正确签名作为参数,并且可以使用参数int调用绑定(bind)的结果,所以可以绑定(bind)到function.这就是它的工作原理(此

C++ Boost:对 boost::system::generic_category() 的 undefined reference

我正在尝试包含Boost我项目中的库,并且一直面临同样的问题。我在带有CodeblocksIDE的Ubuntu12.10上,并尝试手动安装库,从站点读取说明,但在header和使用前构建的库中出现错误。然后我通过终端通过sudoapt-getinstalllibboost-all-dev安装了库.之后,在我的代码块程序中,我可以包含像#include这样的标题。但是当我尝试包含文件系统库的header(#include"boost/filesystem/operations.hpp")时,我收到以下错误:/usr/include/boost/system/error_code.hpp|

c++ - 使用 Boost 从 C++ 中的样本 vector 计算平均值和标准差

有没有办法使用Boost计算包含样本的vector的均值和标准差??还是我必须创建一个累加器并将vector输入其中? 最佳答案 不知道Boost有没有更具体的功能,但是你可以用标准库来做。给定std::vectorv,这是天真的方式:#includedoublesum=std::accumulate(v.begin(),v.end(),0.0);doublemean=sum/v.size();doublesq_sum=std::inner_product(v.begin(),v.end(),v.begin(),0.0);doubl

c++ - ACE vs Boost vs POCO

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题吗?更新问题,以便editingthispost提供事实和引用来回答它.关闭4年前。Improvethisquestion我一直在使用BoostC++Libraries很长一段时间。我非常喜欢BoostAsioC++library用于网络编程。然而,我被介绍到另外两个库:POCO和AdaptiveCommunicationEnvironment(ACE)framework.我想知道每个人的好与坏。 最佳答案 正如rdbound所说,Boost具有“接近ST

c++ - boost shared_mutex(多次读取/一次写入)的示例?

我有一个多线程应用程序,它必须经常读取一些数据,并且偶尔会更新这些数据。现在,互斥锁可以安全地访问该数据,但它很昂贵,因为我希望多个线程能够同时读取,并且仅在需要更新时将它们锁定(更新线程可以等待其他线程完成).我认为这是boost::shared_mutex应该做的,但我不清楚如何使用它,也没有找到一个明确的例子。有没有人有一个简单的例子可以用来入门? 最佳答案 1800INFORMATION或多或少是正确的,但我想更正一些问题。boost::shared_mutex_access;voidreader(){boost::shar

C++ - 传递对 std::shared_ptr 或 boost::shared_ptr 的引用

如果我有一个需要使用shared_ptr的函数,传递一个对它的引用不是更有效吗(以避免复制shared_ptr对象)?可能的不良副作用是什么?我设想了两种可能的情况:1)在函数内部,一个参数的拷贝,就像在ClassA::take_copy_of_sp(boost::shared_ptr&sp){...m_sp_member=sp;//Thiswillcopytheobject,incrementingrefcount...}2)在函数内部只使用参数,就像在Class::only_work_with_sp(boost::shared_ptr&sp)//Again,nocopyhere{.

c++ - Boost最常用的部分

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter寻求指导。关闭10年前.当我发现boost::lexical_cast我心想“为什么我不早点知道这件事!”-我讨厌写像这样的代码stringstreamss;ss现在开始写mystring=boost::lexical_cast(anIntVal);昨天,在stackoverflow上,我遇到了boostsplit(另一个可以节省我编写代码的gem)。stringstrin

c++ - 使用 C++ Boost 库有哪些优势?

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter寻求指导。关闭9年前。所以,我一直在通读,似乎Boost库在实践中得到了很多使用(虽然不是在我的商店)。为什么是这样?是什么让它如此美妙? 最佳答案 Boost被广泛使用是因为:它是开源的并经过同行评审。它提供了一个widerangeSTL遗漏的与平台无关的功能。它是对STL的补充而非替代。许多Boost开发人员都是C+