草庐IT

SOME_UNIQUE_VALE

全部标签

c++ - 将 std::unique_ptr 传递给构造函数以获取所有权

我想将std::unique_ptr传递给一个类的构造函数,该类将获得std::unique_ptr所拥有的数据的所有权。下面的方法foo和bar在编译器处理它们的方式方面是否有任何差异,从而使其中之一更可取?foo类:templateclassfoo{std::unique_ptrdata_;public:foo(std::unique_ptr&&data):data_{std::forward>(data)}{}};bar类:templateclassbar{std::unique_ptrdata_;public:bar(std::unique_ptrdata):data_{std

c++ - 混合 boost::optional 和 std::unique_ptr

我承认:我爱上了可选的概念。自从我发现它以来,我的代码质量有了很大的提高。明确变量是否有效比简单的错误代码和带内信号要好得多。它还让我不必担心必须阅读文档中的契约(Contract),或者担心它是否是最新的:代码本身就是契约(Contract)。就是说,有时我需要处理std::unique_ptr。这种类型的对象可能为空,也可能不是;在代码中的给定点不可能知道std::unique_ptr是否应该有值;不可能从代码中知道契约。我想以某种方式混合optional(可能与boost::optional)和std::unique_ptr,这样我就有一个动态分配的对象,具有范围破坏和适当的复制

c++ - 将 unique_ptr 数组移动到另一个数组的正确方法

我有一个包含在std::unique_ptr中的数组,我想将内容移动到另一个相同类型的数组中。我是否需要编写一个循环来一个一个地移动元素,或者我可以使用类似std::move的东西吗?constintlength=10;std::unique_ptrdata(newint[length]);//Initialize'data'std::unique_ptrnewData(newint[length]);//Fill'newData'withthecontentsof'data'编辑:另外,如果数组大小不同怎么办? 最佳答案 给定的目

c++ - 为什么 std::condition_variable 采用 unique_lock 而不是 lock_guard?

这个问题在这里已经有了答案:C++11:whydoesstd::condition_variableusestd::unique_lock?(2个答案)关闭4年前。std::condition_variable使用如下:std::condition_variablecv;...std::unique_locklk(m);cv.wait(lk,[]{returnprocessed;});在我看来有一个有趣的问题。unique_lock可以延迟,它可以被交换掉。它可能有许多其他代码设计原因,不一定是错误的,它实际上没有被锁定。例如。std::unique_locklk(m,std::try

c++ - unique_lock::unlock 在 C++11 标准中未指定吗?

C++11标准将unique_lock::unlock定义为(§30.4.2.2.2,第1159页)voidunlock();Effects:pm->unlock()Postcondition:owns==falseThrows:system_errorwhenanexceptionisrequired(30.2.2).Errorconditions:—operation_not_permitted—ifonentryownsisfalse.所有其他锁定操作指定至少在两次情况下抛出异常:互斥量为NULL(抛出system_error和errc::operation_not_permit

c++ - 单例模式 : different behavior of auto_ptr and unique_ptr

在实现工厂类时,我遇到了一个我无法理解的std::auto_ptr行为。我将问题简化为以下小程序,所以...让我们开始吧。考虑以下单例类:单例.h#ifndefSINGLETON_H_#defineSINGLETON_H_#include#includeclasssingleton{public:staticsingleton*get(){std::coutptr_;//staticstd::unique_ptrptr_;};#endif单例.cpp#includeostd::auto_ptrsingleton::ptr_(0);//std::unique_ptrsingleton::

C++如何从在构造函数上采用参数的类创建std::unique_ptr

我需要从一个类中创建一个std::unique_ptr,该类的构造函数采用一个参数。我找不到有关如何操作的引用资料。这是无法编译的代码示例:#include#include#include#includeclassMyClass{public:MyClass(std::stringname);virtual~MyClass();private:std::stringmyName;};MyClass::MyClass(std::stringname):myName(name){}MyClass::~MyClass(){}classOtherClass{public:OtherClass(

ios - 下载错误 : CFNetworkDownload_<some id>. tmp 无法移动到 ""因为已存在同名项目

我正在使用ObjectiveDropbox使用用户的Dropbox帐户管理一些任务,即列出文件和下载其中的一些文件。列出我帐户中的文件和文件夹非常直接,但是当我想下载文件时,出现此错误:downloaderror:CFNetworkDownload_.tmpcouldn'tbemovedtobecauseanitemwiththesamenamealreadyexists.知道为什么吗?下载代码:DropboxDownloadArg*downloadArg=[[DropboxDownloadArgalloc]initWithPath:metadata.pathLower];NSURL*

ios - UICollectionview 自定义布局 : some indexes have more visible cells than others?

我遇到了一个奇怪的问题,我似乎无法弄清楚或无法在线找到任何相关信息。因此,我尝试使用UICollectionView和自定义UICollectionViewFlowlayout复制ShazamdiscoverUI。到目前为止一切都运行良好,但是当我(或者更确切地说是实现它的人)添加“卡片堆”效果时,注意到似乎有一个奇怪的问题,在某些情况下(或者更确切地说,当特定索引可见时,在示例中它是第5、9行)将有4个可见单元格而不是3个。我的猜测是这与单元格重用有关,但我不确定为什么它正在这样做。我查看了各个单元格的尺寸,它们似乎都相同,所以并不是单元格的大小不同。有人知道为什么会发生这种情况吗?

iphone - iOS 开发 : What are some reasons that [[self navigationController] viewControllers]; would return nil?

下面的语句返回一个nil...NSArray*viewControllersInNavStack=[[selfnavigationController]viewControllers];并且在导航堆栈中大约四层深的ViewController中调用此语句,所以我不明白它如何或为什么会返回nil。你的想法?非常感谢您的智慧! 最佳答案 听起来不像是你的问题,但文档说“如果ViewController在其堆栈中,则只返回导航Controller。如果找不到导航Controller,则此属性为nil”。首先检查[selfnavigatio