草庐IT

unique_with

全部标签

c++ - 成员函数检查 : Implement compilation-time checkings with C++11 features

我读到C++11有足够的静态检查(编译时),以便实现C++11的大部分内容(已删除)。(我在最近关于已删除概念的问题的评论中读到过此内容...-该问题因不具有建设性而很快被关闭)。下面的C++03代码仅检查类中是否存在成员函数(我的模板类要在该类上工作)。这里有4个搜索的成员函数,我总是使用相同的模式:定义函数原型(prototype)的typedef如果类型名称TExtension没有定义这样的成员函数,或者如果它有不同的原型(prototype),则调用static_cast会中断编译代码如下:templateclass{...voidcheckTemplateConcept(){

c++ - boost::ptr_vector 对比 std::vector<std::unique_ptr<T>>?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。他们做类似的事情。在两者之间进行选择时应该考虑什么?在哪种情况下,哪一个是首选?

c++ - 拥有一个具有原始指针访问器的 unique_ptr 成员是不好的做法吗?

我有一个类有一个unique_ptr成员,并且这个类保留这个对象的唯一所有权。但是,外部类可能需要访问此对象。在这种情况下,我应该只返回一个原始指针吗?shared_ptr似乎不正确,因为这意味着访问类现在共享该内存的所有权,而我想明确指出原始类是唯一所有者。例如,也许我有一个拥有根节点的树类。另一个类可能出于某种原因希望探索树,并且需要指向根节点的指针来执行此操作。部分实现可能如下所示:classTree{public:Node*GetRoot(){returnm_root.Get();}private:std::unique_ptrm_root;};这是不好的做法吗?更好的解决方案

c++ - 尽管使用静态 unique_ptr 进行析构函数调用,但内存泄漏

我使用unique_ptr作为静态数据成员来保存指针。structTest{inti;~Test(){coutte;};unique_ptrS::te=unique_ptr(newTest());在程序终止时S::te被析构,调用测试析构函数。但是_CrtDumpMemoryLeaks向我显示了S::te.get()的内存位置上的内存泄漏,这是指向(已破坏的)测试对象的指针。我不明白这种行为。我不能使用静态unique_ptr吗?为什么在unique_ptr实现中调用了析构函数会出现泄漏? 最佳答案 如果您试图在静态破坏发生之前检查

C++ 无法使用通用引用 move unique_ptr

考虑这段代码:templateTmov(T&&t){returnstd::move(t);}intmain(){std::unique_ptra=std::unique_ptr(newint());std::unique_ptrb=mov(a);}mov函数应该简单地接受一个通用引用并按值返回它,但是通过move而不是复制它。因此,调用此方法时不应涉及复制。因此,使用只能move的unique_ptr调用这样的函数应该没问题。但是,此代码无法编译:我收到错误:test.cpp:24:34:error:useofdeletedfunction‘std::unique_ptr::uniqu

Ansible with_dict期望一个dict-空白null词典变量

Ansible1.9.4在我的group_vars/slave/slave文件,我将以下变量设置为null值(无/未定义/空字符串更准确):#NFSmountsettingsslave_nfsmount:剧本调用任务/操作:-name:Ensurenfsmountdirectoryexistsfile:path={{item.key}}state=directorywith_dict:"{{slave_nfsmount|default({})}}"ignore_errors:yes获取错误mesg:TASK:[Ensurenfsmountdirectoryexists]************

【论文阅读笔记】Time Series Contrastive Learning with Information-Aware Augmentations

TimeSeriesContrastiveLearningwithInformation-AwareAugmentations摘要背景:在近年来,已经有许多对比学习方法被提出,并在实证上取得了显著的成功。尽管对比学习在图像和语言领域非常有效和普遍,但在时间序列数据上的应用相对较少。对比学习的关键组成部分:对比学习的一个关键组成部分是选择适当的数据增强(augmentation)方式,通过施加一些先验条件构建可行的正样本。这样,编码器可以通过训练来学习稳健和具有区分性的表示。问题陈述:与图像和语言领域不同,时间序列数据的“期望”增强样本很难通过人为的先验条件来生成,因为时间序列数据具有多样且人类

c++ - 将 unique_ptr 的 vector 传递给函数,const 引用

我通常会像这样传递一个包含原始指针的vector:someFunc(conststd::vector&classList){..}我想知道你是否可以像这样对unique_ptr做同样的事情:someFunc(conststd::vector>&classList){..}?它的意思是一样的吗?即只读。 最佳答案 是的,你可以。不,这不是同一件事:std::unique_ptr表示指针拥有的资源。通用原始指针可以具有许多其他语义。关于const的正确性,使用迭代器或operator[]访问vector的元素将产生对std::uniqu

c++ - 传递返回多态 unique_ptr 的 lambda 作为函数指针

我想传递一个非捕获的lambda,它返回一个std::unique_ptr,作为std::unique_ptr(*)()类型的函数指针.但是,这仅在我将lambda的返回类型明确声明为std::unique_ptr时才有效。.为什么要明确说明返回类型?为什么它适用于std::function没有这个额外的返回类型?#include#includestructBase{virtual~Base()=default;};structDerived:Base{};structFailsForF2{usingFunction=std::add_pointer_t()>;FailsForF2(F

c++ - 在带有 std::unique_ptr 的 lambda 中使用 std::bind

//Byconstl-valuereferenceautofunc2=std::bind([](conststd::unique_ptr>&pw)//fine{std::coutsize()>(22,1));//Bynon-constl-valuereferenceautofunc3=std::bind([](std::unique_ptr>&pw)//fine{std::coutsize()>(22,1));//ByValueautofunc4=std::bind([](std::unique_ptr>pw)//error{std::coutsize()>(22,1));func4(