草庐IT

com_ptr_t

全部标签

c++ - `unique_ptr` 上的原子操作

std::shared_ptrhasspecializationsforatomicoperations像atomic_compare_exchange_weak和family,但我找不到关于std::unique_ptr的等效特化的文档。有没有?如果不是,为什么不呢? 最佳答案 可以提供std::shared_ptr的原子实例的原因并且不可能为std::unique_ptr这样做在他们的签名中暗示。比较:std::shared_ptr对比std::unique_ptr其中D是删除器的类型。std::shared_ptr需要分配一个

c++ - std::move 和 unique_ptr::reset 之间有什么区别?

对于std::unique_ptr的p1和p2,std::move()有什么区别>和std::unique_ptr::reset()?p1=std::move(p2);p1.reset(p2.release()); 最佳答案 根据[unique.ptr.single.assign]/2中移动分配的标准规范,答案应该是显而易见的:Effects:Transfersownershipfromuto*thisasifbycallingreset(u.release())followedbyanassignmentfromstd::forw

Cause: com.github.pagehelper.PageException: 无法自动获取数据库类型,请通过 helperDialect 参数指定! kingbase数据库

目录1.业务背景2.解决方案3.相关资料1.业务背景    现在政府项目要求国产化,数据库使用的是kingbase,在使用mybatis分页插件的时候,遇到Cause:com.github.pagehelper.PageException:无法自动获取数据库类型,请通过helperDialect参数指定!kingbase数据库。2.解决方案    方法很简单,人家也告诉你指定数据库类型,我直接吧kingbase在配置,项目都启动不来。        KingbaseES适配Mybatis-Plus时,由于Mybatis-Plus无法识别KingbaseES数据库类型。    将kingbase

c++ - 最好返回 C++ 引用或 weak_ptr?

假设我有一个类,我希望用户能够在其中引用我的成员之一。哪个更受欢迎?classMember;classClassWithWeakPtr{private:boost::shared_ptr_member;public:boost::weak_ptrGetMember();};或classMember;classClassWithCppReference{private:Member_member;public:Member&GetMember(){return_member;}};你怎么看?什么时候比另一个更好? 最佳答案 为什么不返

c++ - 创建 shared_ptr 到堆栈对象

在我的方法中,Player对象的创建方式如下:Playerplayer(fullName,age);我的老师给了我们一段带有构造函数的代码,该构造函数将shared_ptr传递给玩家对象。//constructoroftheclassSomeClass(conststd::shared_ptrclient,std::shared_ptrplayer)假设我们要调用SomeClass的构造函数并传递我们在堆栈上创建的播放器对象。从堆栈对象创建shared_ptr是否安全/可能/好?为了让问题更容易理解,假设我们有两个大代码项目,我们想合并它们,以便从一个项目调用另一个项目的方法,我们是否

c++ - 从原始指针创建 weak_ptr<>

我想将原始指针成员包装到一些智能指针,以防止在开发类中删除。指针下对象的所有者在类之外。所以,看起来像boost::shared_ptr和std::auto_ptr不适合。以下是简化的示例:classFoo{boost::weak_ptrm_bar;public:voidsetBar(constBar*bar){//barcreatedonheapm_bar=bar;//naturallycompilationerror}};当然会导致编译错误。从原始指针(如果存在)初始化weak_ptr的正确方法是什么? 最佳答案 你不能那样做,

c++ - 防止多个 shared_ptr 指向同一个对象的最佳方法

将相同的指针发送到两个不同的shared_ptr是不好的,它会导致双重释放,如下所示:int*p=newint;std::shared_ptrp1(p);std::shared_ptrp2(p);//BAD您可以使用std::enable_shared_from_this实现相同的目的:classGood:publicstd::enable_shared_from_this{public:std::shared_ptrgetptr(){returnshared_from_this();}};intmain(){std::shared_ptrgp1(newGood);std::share

解决git clone或者pip install git+https://github.com/ruotianluo/meshed-memory-transformer.git出现的一系列问题

出现的错误:问题1.fatal:unabletoaccess'https://github.com/ruotianluo/meshed-memory-transformer.git/':Failedtoconnecttogithub.comport443after21020ms:Timedout error:unabletoreadsha1fileofm2transformer/data/example.py(d46c07fc2bb636146922425a46fbcbb2443407cf)问题2.Collectinggit+https://github.com/ruotianluo/mesh

c++ - COM msado15.dll 程序已停止运行

我们一直在我们的程序中使用旧的msado15.dll。我们曾经导入它#import"msado15.dll"。现在就在几天前,我们升级到Windows8。唉,我们的软件在没有安装Servicepack1的Windows7上停止工作。早些时候,当我们使用Windows7时,我们已经升级到Servicepack1并且发生了同样的问题,因此我们从所有机器上卸载了适用于Windows7的ServicePack1,并且一切正常。但对于Windows8,我想他们已经更改了msado15.dll。我在网上做了一些研究,他们说我们应该用msado60.tlb替换导入,但这也对我们的编译中断不起作用。这

C++11 std::shared_ptr + boost::序列化

这个问题在这里已经有了答案:Howcanboost::serializationbeusedwithstd::shared_ptrfromC++11?(7个答案)boostserializeandstd::shared_ptr(2个答案)关闭9年前。嗨,有人已经成功地使用boost::serialization序列化了C++11std::shared_ptr。那里有很多过时的帖子,但没有一个具有可接受的解决方案。我不打算讨论为什么我要使用std::shared_ptr只是接受它!我找到了另一个帖子:boostserializeandstd::shared_ptr但它没有回答我如何序列化