草庐IT

temporary-objects

全部标签

c++ - 检测(无意义的)分配给临时对象

是否有任何编译器选项允许您在尝试分配给临时对象时收到警告?例子:structS{Sop(){returnS();}};intmain(){Ss;s.op()=s;//assigntotemporary.Wantstowarnhere.}我知道您可以将op的返回类型声明为const以防止出现这种情况,但现在我只对编译器选项感兴趣。您可以使用任何流行的现代编译器。 最佳答案 编译器可能无法判断有用的副作用。编译器会警告inttest(S&data);test(S.op()); 关于c++-检

c++ - 将 C++ 类与 Objective C 类混合

我使用的是iphoneSDK,主要使用C++进行编码,同时使用obj-c中的部分SDK。在需要obj-c类的情况下是否可以指定C++类?例如:1)将委托(delegate)设置为obj-c对象时。我无法使C++类派生自委托(delegate)协议(protocol),因此这个原因和可能的其他原因阻止我使我的C++类成为各种obj-c对象的委托(delegate)。作为解决方案,我所做的是创建一个obj-c适配器类,其中包含指向C++类的ptr并用作委托(delegate)(在调用时通知C++类)。每次我需要将委托(delegate)通知发送给C++类时,都感觉很麻烦。2)设置选择器时这

c++ - Microsoft VS C++ 编译器是否存在 Bug Initialize a reference from a temporary object

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:Bindingtemporarytoalvaluereference使用VS2008C++编译器编译代码无编译错误。classA{};intmain(){A&a_ref=A();return0;}我相信C++标准,包括C++2003和即将到来的C++0x,都不允许它。而且我还遇到了gcc编译器的编译时错误。所以我想知道的是,这是VS编译器允许从临时对象初始化引用的已知错误。还是VS编译器的功能扩展?如果是,临时对象的生命周期是多少?

c++ - 如何让 boost::object_pool 线程安全?

在询问Isthereafasterheapallocation/deallocationmechanismavailablethanboost::object_pool?后,我得到反馈说这个对象池不是线程安全的。所以我写了一个ObjectFactory包装boost::object_pool并添加互斥锁:#includeusingstd::shared_ptr;#include#includetemplateclassObjectFactory{private:structSharedDeleter{ObjectFactory*m_pFact;SharedDeleter(ObjectF

python - SWIG、C++ 和 Python : C++ temporary objects deleted too soon

我遇到了SWIG过早删除临时C++对象的问题。Python测试脚本的示例输出:--------------------------------------------------------------------------------Worksasexpected:b0=Buffer(0,0,0,)b1=Buffer(1,1,1,)b0=Buffer(0,0,0,1,1,1,)y=Buffer(0,0,0,1,1,1,)b1=Buffer(1,1,1,)repr(b0)=Buffer(id=0,vectorat0x020bf450,dataat0x020aeb30,size=6)r

c++ - 对类型的非常量左值引用 - 使用 Class 类型的参数时 Objective-C++ 包装器中的错误

我有两个用Objective-C++编写的包装器类,用于它们等效的C++类。我们称它们为OABCClass和OXYZCallbackInterface。现在我在C++(ABCClass)中有一个方法,其中一个参数是一个接口(interface)-XYZCallbackInterface。例如:std::stringmethodWithArguments(std::stringreq,CommonNamespace::XYZCallbackInterface&callback);在我的Objective-C++包装器类中,即OABCClass我对上述C++方法的方法实现如下所示:-(NS

c++ - 隐式转换产生 "error: taking address of temporary"(GCC vs clang)

在试验强类型整数时,我遇到了一个来自GCC8.2的奇怪错误:error:takingaddressoftemporary我可以想象上述错误有意义的典型场景,但在我的情况下我没有遇到问题。重现错误的缩小(人为)示例如下:#include#includeenumclassEnum:std::size_t{};structPod{std::size_tval;constexproperatorEnum()const{returnstatic_cast(val);}};templateconstexprvoidfoo(){usingFoo=std::integral_constant;//[G

c# - 有没有支持C++和C#的ORM(Object Relational Mapper)框架

我正在寻找一个允许我编写C#用户界面和C++服务的ORM。两者都需要从同一个数据库访问数据。理想情况下,我希望从数据库模式生成C#和C++类,然后我可以根据这些模式进行编程。数据库可能是SQLServer,但尚未确定。注意:我在Windows环境中执行此操作,但由于我不想深入的原因,我实际上无法使用COM,因此COM解决方案不是一个选项。这类似于这个问题:ORM(objectrelationalmanager)solutionwithmultipleprogramminglanguagesupport但是,这个问题没有得到很好的回答,我无法为此筹集赏金。 最

c++ - 如何获取指向托管 activex 控件的 <object> 标记的 IHTMLElement 指针

我有一个由FireBreath框架(http://firebreath.org)生成的ActiveX控件。我需要在托管C++插件的页面中获取对标记的引用。如果我使用NPAPI,我会使用NPNVPluginElementNPObject常量和NPN_GetValue。为了确保我表达清楚,假设我在页面中有以下内容:我想获得对插件的引用,就像我使用document.getElementById("testPlugin")时一样,除了从为该mimetype插入的activex控件的C++代码中。请注意,将id作为传递对我来说不是一个好的选择,但如果有一种方法可以从activex控件内部获取ID

c++ - 如何使用 ARC 使 C++ 模板适用于 Objective C 类型?

举个简单的例子。如果我在没有ARC的情况下编译以下main.mm文件,它可以正常工作。#importtemplateinttesting(constT&whoCares){return0;}intmain(intargc,constchar*argv[]){returntesting(@"hello");}如果我用ARC编译它,会出现以下错误:/Users/sam/Projects/TemplateTest/TemplateTest/main.mm:10:12:error:nomatchingfunctionforcallto'testing'returntesting(@"hello