草庐IT

auto-detect

全部标签

c++ - 在 std::auto_ptr 的构造函数中使用 `explicit` 关键字有什么原因吗?

这是用于在VS2008编译器中从标准指针构造std::auto_ptr对象的构造函数。templateclassauto_ptr{public:explicitauto_ptr(_Ty*_Ptr=0)_THROW0():_Myptr(_Ptr){}private:_Ty*_Myptr;};explicit是否有任何特殊原因?上面使用关键字?换句话说,为什么我不能初始化auto_ptr与std::auto_ptrptr=newClassA;? 最佳答案 因为否则您可能会无意中执行以下操作:voidfoo(std::auto_ptrp)

c++ - 在多线程环境中使用 auto_ptr 交换对象而不锁定是安全的吗?

我在堆上分配了一些数据结构,它们很少被修改但需要快速读取访问。一个例子是在堆上分配的结构,许多线程以只读方式非常频繁地访问它。需要定期重写此结构并避免锁定争用我想知道使用auto_ptr是否安全基本上允许已获取引用的线程继续处理直到它们完成writer创建结构的拷贝,重写它并快速与结构的新auto_ptr实例交换指针。我从Java中的CopyOnWriteArrayList得到这个想法,并希望在C++中执行类似的性能。 最佳答案 std::auto_ptr在调用非常量成员(例如reset())时没有任何线程安全保证正如你所建议的。此

c++ - 使用 constexpr auto/char-array 变量观察到的不同行为

跟进这个问题Havingaconstexprstaticstringgivesalinkererror在问题中,这段代码无法编译:#includestructTest{staticconstexprchartext[]="Text";};intmain(){std::cout从评论来看,这段代码是可以编译的:#includestructTest{staticconstexprautotext="Text";};intmain(){std::cout我的问题是,为什么auto版本可以工作,而char版本的数组却不行?能否请您指出标准中允许使用第二个版本而不允许使用第一个版本的声明?我看了

论文阅读笔记—— Multi-attentional Deepfake Detection

文章目录Multi-attentionalDeepfakeDetection背景创新贡献方法注意图正则化的区域独立性损失注意力引导的数据增强实验Multi-attentionalDeepfakeDetection来源:CVPR2021作者:HanqingZhao1WenboZhou1,†DongdongChen2TianyiWei1WeimingZhang1,†NenghaiYu1单位:UniversityofScienceandTechnologyofChina1MicrosoftCloudAI2邮箱:{zhq2015@mail,welbeckz@,bestwty@mail,zhangwm@

c++ - (C++14) lambda 数组 : error: 'name' declared as array of 'auto'

我很难解决这个错误。我承认,我是C++的新手,我的困难来自于不理解错误消息。代码如下:autoselectionFuncs[8]={[&](constVector3&min,constVector3&max){returnmax.x_==seamValues.x_||max.y_==seamValues.y_||max.z_==seamValues.z_;},[&](constVector3&min,constVector3&max){returnmin.x_==seamValues.x_;},[&](constVector3&min,constVector3&max){returnm

c++ - 有什么理由不对 C++ 基于范围的 for 循环使用 auto& 吗?

例如循环:std::vectorvec;...for(auto&c:vec){...}将遍历vec并通过引用复制每个元素。是否有理由这样做?for(int&c:vec){...} 最佳答案 这两个代码片段将导致生成相同的代码:使用auto,编译器将确定底层类型是int,并执行完全相同的操作但是,auto的选项更“面向future”:如果在以后的某个时候您决定将int替换为,比如说,uint8_t为了节省空间,您无需遍历代码来查找对可能需要更改的基础类型的引用,因为编译器会自动为您完成。

c++ - 为什么我不能使用 auto 声明变量?

当我尝试声明一个类变量时,我在VisualStudio2015中遇到编译错误,而该类使用PIMPL模式。Foo.h:#pragmaonceclassFoo{public:Foo(conststd::wstring&str,conststd::vector&items);~Foo();private:structImpl;std::unique_ptrpimpl;};Foo.cpp:#include"stdafx.h"#include"Foo.h"structFoo::Impl{public:Impl(conststd::wstring&str,conststd::vector&item

Multitask AET with Orthogonal Tangent Regularity for Dark Object Detection论文笔记

论文:https://arxiv.org/abs/2205.03346代码:https://github.com/cuiziteng/ICCV_MAET代码:https://github.com/cuiziteng/MAET参考:https://zhuanlan.zhihu.com/p/572545992摘要:由于光子不足和不良的噪声,黑暗环境成为计算机视觉算法的一个挑战。为了增强黑暗环境中的目标检测,我们提出了一种新的多任务自动编码转换(MAET)模型,该模型能够探索光照转换背后的内在模式。MAET以一种自监督的方式,通过考虑物理噪声模型和图像信号处理(ISP)的真实照明退化转换进行编码和解

c++ - 为什么 auto 不能是函数的返回类型?

这个问题在这里已经有了答案:Alambda'sreturntypecanbededucedbythereturnvalue,sowhycan'tafunction's?(5个答案)OmitreturntypeinC++11(6个答案)关闭7年前。我的问题是,为什么不能推导出函数的返回类型?,或者更简单地说,为什么以下代码会出错:automyfunc(inta){inta=12;returna;}为什么这是无效的?

c++ - 从核心转储中识别 auto_ptr 背后对象的具体类型

我有一个auto_ptr,其中IFoo是一个只有纯虚拟方法的接口(interface)。我现在在段错误后还有一个核心文件,我真的很想知道这个auto_ptr背后的具体子类是什么。作为dynamic_cast在项目中工作,我认为RTTI必须以某种方式可用,但我不知道如何通过gdb访问此信息。?我得到的输出如下:(gdb)printthis->obj._M_ptr$22=(classmartin::IFoo*)0x7418我真正想知道的是,指针是否属于IBar或IBaz.感谢您的帮助! 最佳答案 WhatI'dreallyliketok