草庐IT

shared-object

全部标签

c++ - 我正在 Mac 上开发 GUI 应用程序。我已经使用 C++ 10 多年了。我需要切换到 Objective C 吗?

我已经使用C++/Linux编写代码10多年了。我要转行做Mac开发。我的开发涉及GUI组件。学习Cocoa/Objective-C是我唯一的选择,还是有办法包装Cocoa并从C++领域使用它?谢谢! 最佳答案 是的,你需要学习Objective-C。此外,如果你不需要的话,你不会有太多收获。难学的不是语言,而是Cocoa框架(不是因为它天生就很难,而是因为它太大了)。 关于c++-我正在Mac上开发GUI应用程序。我已经使用C++10多年了。我需要切换到ObjectiveC吗?,我们在

c++ - 复制 boost::shared_ptr

typedefboost::shared_ptrdata_ptr;data_ptrcached_ptr;//classmemberboolsomeWork(data_ptr&passed_ptr){//mustcopypassed_ptr=cached_ptrundersomeconditions//withoutpointingatthesamememory//IsawsomewherethatIshoulddo//passed_ptr.reset(newSomeData(???))//Idon'thavea"reset"onpassed_ptr}我查看了文档;复制和转换构造函数sh

c++ - shared_ptr 的神秘崩溃

有人可以解释为什么在退出内部作用域时以下内容会在main()中崩溃吗?我正在使用VisualStudio2013。虽然GCC4.8.1一切正常,但我怀疑代码中有问题。我就是不明白。#include#includeclassPerson;classPersonProxy;classPersonInterface{public:virtual~PersonInterface()=default;virtualPersonProxy*getProxy()const=0;virtualvoidcreateProxy(Person*)=0;};classPerson:publicPersonIn

c++ - 手动递增和递减 boost::shared_ptr?

有没有办法在C++中手动增加和减少shared_ptr的计数?我要解决的问题如下。我正在用C++编写一个库,但接口(interface)必须是纯C语言。在内部,我想使用shared_ptr来简化内存管理,同时保留通过C接口(interface)传递原始指针的能力。当我通过接口(interface)传递原始指针时,我想增加引用计数。然后客户端将负责调用一个函数,该函数将在不再需要传递的对象时减少引用计数。 最佳答案 也许您正在跨DLL边界使用boost::shared_ptr,这将无法正常工作。在这种情况下boost::intrusi

c++ - 为什么 WebKit 是用 C++ 而不是 Objective C 写的

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭12年前。Apple是ObjectiveC的后盾。但是WebKit是用C++编写的。除了可移植性(并非所有系统都有ObjectiveC编译器/运行时)之外,还有其他正当理由吗?性能、功能?最近Apple似乎不关心ObjectiveC以外的其他语言。

Objective-C:通过变量阻止

我对块没有经验。我尚未掌握语法。我想做的是将方法在方法的第一部分中获得的日期传递到一个完成块中,以便在完成块运行之前不设置日期(即其他所有内容都完成)。谁能建议该怎么做?以下给出了未申报的标识符秒版的错误使用。编辑:-(void)myMethod:(NSInteger*)state{switch(state){case1:{//dosomestuff}completion:^(BOOLfinished){//finishup}];}break;}default:{Items*firstItem=[self.fetchedResultsControllerobjectAtIndexPath:in

c++ - 为什么 std::shared_ptr 从基类和派生类调用析构函数,而 delete 只调用基类的析构函数?

这个问题在这里已经有了答案:Howisitpossible(ifitis)toimplementshared_ptrwithoutrequiringpolymorphicclassestohavevirtualdestructor?(3个答案)关闭8年前。为什么在使用std::shared_ptr释放时从基类和派生类调用析构函数,而第二个示例仅从基类调用析构函数?classBase{public:~Base(){std::coutsharedA(newDerived);}std::cout输出:--------------------DeriveddestructorBasedestr

c++ - 提升.Python : Getting a python weak reference to a wrapped C++ object

我已经使用Boost.Python包装了一个C++类。这些对象在C++端具有强引用(boost::shared_ptr),并且在Python中也可能存在断断续续的强引用。到目前为止,一切正常。但是,如果我从其中一个强引用创建一个python弱引用,那么一旦最后一个python强引用消失,这个弱引用就会被删除。我希望弱引用一直存在,直到C++端的最后一个强引用也消失为止。有可能实现吗?换句话说:有没有办法从python中找出特定的C++对象(由Boost.Python包装)是否仍然存在? 最佳答案 您如何持有对包装类的“C++强引用”

c++ - 如何在没有多余 RC 操作的情况下在派生类中使用 shared_from_this?

如果我想创建一个shared_ptr在从基类继承的层次结构中的派生类成员函数中,我可以使用shared_from_this和static_pointer_cast:classBase:publicstd::enable_shared_from_this{};classDer:publicBase{public:std::shared_ptrmake_SP_to_Me(){returnstd::static_pointer_cast(shared_from_this());}};我担心的是static_pointer_cast通过lvalue-ref-to-const接受它的参数,所以当

c++ - 虚继承与多态 : Is the cereal library messing with object layout?

我有四个类(A、B、C和D)遵循经典菱形图案和Container包含unique_ptr的类.我想使用cereal序列化这些类序列化库。structA{intf1;intf2;intf3}structB:publicvirtualA{templateinlinevoidsave(Archive&ar)const{std::cerrf1)f2)f3)f1f2f3CEREAL_REGISTER_TYPE(B);CEREAL_REGISTER_TYPE(C);CEREAL_REGISTER_TYPE(D);structContainer{std::unique_ptrobj;template