草庐IT

unique_future

全部标签

c++ - unique_ptr boost 等效?

在boost库中是否有C++1x的std::unique_ptr的等效类?我正在寻找的行为是能够拥有一个异常安全的工厂函数,就像这样......std::unique_ptrcreate_base(){returnstd::unique_ptr(newDerived);}voidsome_other_function(){std::unique_ptrb=create_base();//Dosomestuffwithbthatmayormaynotthrowanexception...//Nowbisdestructedautomagically.}编辑:现在,我正在使用这个hack,

c++ - std::unique_ptr 的自定义删除器如何工作?

根据N3290,std::unique_ptr在其构造函数中接受一个删除器参数。但是,我无法在Windows中使用VisualC++10.0或MinGWg++4.4.1,在Ubuntu中也无法使用g++4.6.1。因此,我担心我对它的理解不完整或错误。我看不出明显被忽略的删除器参数的意义,所以任何人都可以提供一个工作示例吗?最好我也想看看unique_ptrp=unique_ptr(newDerived)是如何工作的.可能使用标准中的一些措辞来支持示例,即,无论您使用什么编译器,它实际上都做了它应该做的事情? 最佳答案 这在MSVC

c++ - 带有 unique_ptr 的前向声明?

这个问题在这里已经有了答案:Isstd::unique_ptrrequiredtoknowthefulldefinitionofT?(9个回答)关闭7年前。我发现将类的前向声明与std::unique_ptr结合使用很有用如下面的代码所示。它编译并与GCC一起工作,但整个事情看起来有点奇怪,我想知道这是否是标准行为(即标准所要求的)?因为当我声明unique_ptr时B不是一个完整的类型.A.hpp#includeclassB;classA{std::unique_ptrmyptr;//B::~B()can'tbeseenfromherepublic:~A();};A.cpp#incl

c++ - boost::unique_lock 与 boost::lock_guard

我不太了解这两个锁类之间的区别。在boost文档中说,boost::unique_lock不会自动实现锁定。这是否意味着unique_lock和lock_guard的主要区别在于unique_lock我们必须显式调用lock()功能? 最佳答案 首先回答您的问题。不,您不需要在unique_lock上调用lock。见下文:unique_lock只是一个具有更多功能的锁类。在大多数情况下,lock_guard会做你想做的,并且足够了。unique_lock为您提供更多功能。例如,如果您需要超时或者如果您想将锁定推迟到对象构造之后的某个

c++ - 为什么 unique_ptr 将删除器作为类型参数而 shared_ptr 没有?

std::unique_ptr模板有两个参数:指针的类型和删除器的类型。第二个参数有一个默认值,所以你通常只写std::unique_ptr.std::shared_ptr模板只有一个参数:指针的类型。但是您也可以使用自定义删除器,即使删除器类型不在类模板中。通常的实现使用类型删除技术来做到这一点。std::unique_ptr没有使用相同的想法是否有原因?? 最佳答案 部分原因是shared_ptr无论如何都需要一个显式的控制block来控制引用计数,并且在上面插入一个删除器并不是什么大不了的事。unique_ptr但是不需要任何

c++ - 为什么在 shared_ptr 只取一个时 unique_ptr 取两个模板参数?

两者unique_ptr和shared_ptr接受自定义删除器来调用他们拥有的对象。但是在unique_ptr的情况下,删除器是作为class的模板参数传递的,而shared_ptr的自定义删除器的类型是被指定为构造函数的模板参数。template>classunique_ptr{unique_ptr(T*,D&);//simplified...};和templateclassshared_ptr{templateshared_ptr(T*,D);//simplified...};我不明白为什么会有这种差异。有什么要求? 最佳答案

xml - JSON Schema 与 XML Schema 的比较及其 future

我一直在寻找JSON模式标准及其相应的php实现。期待一些开源,我很惊讶,发现只有一个php实现。我打算使用这种技术(JSON)和模式库来解析我传入的浏览器请求。这种自然的解析/验证事件在XML中似乎很自然,这让我想知道为什么在JSON中不是这样。我最终陷入了怀疑的境地。我应该追求我的JSON结构数据交换还是切换到XML?我首先选择JSON是因为它的简单性和与XML相比不那么冗长的语法,但是如果我必须重新开发世界上所有现有的标准,这些争论就会变得更轻松。我还选择了JSON,希望限制我的Web服务器和我的移动应用程序之间的通信大小。与Comet应用程序一起使用时,XMPP似乎已被Goog

c++ - 创建包含已分配数组的 unique_ptr 的正确方法

创建一个unique_ptr的正确方法是什么,它包含一个在自由存储上分配的数组?VisualStudio2013默认支持这一点,但是当我在Ubuntu上使用gcc4.8.1版时,我会遇到内存泄漏和未定义的行为。这个问题可以用这段代码重现:#include#includeusingnamespacestd;intmain(){unique_ptrtestData(newunsignedchar[16000]());memset(testData.get(),0x12,0);return0;}Valgrind会给出这个输出:==3894==1errorsincontext1of1:==38

python - from __future__ import absolute_import 实际上做了什么?

我有answered一个关于Python中绝对导入的问题,我认为我根据阅读thePython2.5changelog理解了这个问题并伴随PEP.然而,在安装Python2.5并尝试制作一个正确使用from__future__importabsolute_import的示例时,我意识到事情并不是那么清楚。直接来自上面链接的更改日志,这句话准确地总结了我对绝对导入更改的理解:Let'ssayyouhaveapackagedirectorylikethis:pkg/pkg/__init__.pypkg/main.pypkg/string.pyThisdefinesapackagenamedp

java - CompletableFuture、Future 和 RxJava 的 Observable 的区别

我想知道两者的区别CompletableFuture、Future和ObservableRxJava.我所知道的是所有都是异步的,但是Future.get()阻塞线程CompletableFuture给出回调方法RxJavaObservable---类似于CompletableFuture其他好处(不确定)例如:如果客户端需要进行多个服务调用,而当我们使用Futures(Java)Future.get()将按顺序执行...想要想知道它在RxJava中的表现如何。还有文档http://reactivex.io/intro.html说很难使用Futures来优化组合条件异步执行流(或者是不