草庐IT

destruction

全部标签

c++ - 涉及优化器的局部变量构建和销毁

如果我有这段代码:classA{...};classB{...};voiddummy(){Aa(...);Bb(...);...}我知道变量a和b会以相反的分配顺序被销毁(b会先被销毁,然后是a);但我能确定优化器永远不会交换a和b的分配和构造吗?或者我必须使用volatile来强制执行它? 最佳答案 唯一的保证是volatile的构造的任何可观察到的副作用(即读取和写入a对象以及调用I/O函数)将在构建b的任何可观察到的副作用之前发生,以及a的任何副作用b要求会在需要之前发生。很难想象为什么您需要比这更严格的排序,但使对象vola

c++ - boost Weak_Ptr : Destruction is more expensive than expected

无论出于何种原因,我们看到销毁弱指针的成本相当高。这是罪魁祸首代码:~weak_count()//nothrow{if(pi_!=0)pi_->weak_release();//Consumesahugechunkofourtime.#ifdefined(BOOST_SP_ENABLE_DEBUG_HOOKS)id_=0;#endif}我们没有处于Debug模式,调试Hook也没有启用。弱释放消耗了非常多的时间。这是一个已知的问题?我们做错了什么吗?boost版本:1.36编译器:VS2008编译器套件。不幸的是,由于各种原因,我们被锁定在这个Boost版本中,所以我更想知道这些奇怪的

c++ - "has_trivial_destructor"定义而不是 "is_trivially_destructible"

在C++11标准的细化过程中,好像是is_trivially_destructible被认为是比has_trivial_destructor更好/更一致的名称.这是一个相对较新的开发,因为我的g++4.7.1仍然使用旧名称,并且它已被修复以符合4.8的标准:http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52702我一直懒洋洋地使用#if,它有利于我使用的编译器:#ifTRIVIAL_DESTRUCTOR_TYPE_TRAIT_MATCHES_STANDARDtemplateusingis_trivially_destructible=std::

【推荐100个unity插件之17】具有可破坏/砍倒unity地形树木能力的破坏系统,实现unity砍树效果 —— DestroyIt - Destruction System

最终效果文章目录最终效果前言下载可破坏的地形树新建地形破坏的树预制体制作可破坏树的原始版本在地形上添加树快速添加第一人称控制器设置-可破坏的树运行效果攻击具体是如何实现的呢(补充)一些其他问题问题1问题2待续完结前言unity破坏系统插件之前其实已经推荐过了几个,但是他们不具备砍树树的能力(其实是不适合)。【推荐100个unity插件之13】推荐一款开源的Unity网格破碎插件,实现在Unity中展示可破坏的墙壁的——unity-fracture【推荐100个unity插件之4】OpenFracture插件实现unity3d物体破裂和切割【推荐100个unity插件之3】切割unity3d物体

php - 发送 : How to correctly destruct a custom object in PHP 7?

我正在学习PHP扩展编写,以便使一些旧的扩展可以与PHP7一起使用。我试图修改来自http://devzone.zend.com/1435/wrapping-c-classes-in-a-php-extension/的示例扩展名但它在破坏自定义对象时一直导致段错误。所有其他功能都正常工作。(在我的代码中Car被BDict替换了。)这是我的代码:#defineZ_BDICT_OBJ_P(zv)php_bdict_object_fetch_object(Z_OBJ_P(zv))zend_object_handlersbdict_object_handlers;typedefstruct_b

php - 为什么 phpunit 不在模拟类中运行 __destruct() 以及如何强制运行它?

代码会解释一切:expectOutputString('Itworksgreat!');}publicfunctiontestDestructorOnMockedClass(){$a=$this->getMock('A',array('someNonExistingMethod'));//Itunset($a);//worksecho"great!";//great!$this->expectOutputString('Itworksgreat!');}}classA{publicfunction__construct(){echo"It";}publicfunction__destr

Unity 实现自定义图片破碎效果-2D_Destruction

Unity实现自定义图片破碎效果-2D_Destruction导引效果预览源码下载地址实现流程1、添加SrpiteRenderer组件2、添加Explodable组件3、PolygonCollider2D组件4、碎片生成5、最后一步,添加点击破碎触发效果6、添加爆破效果:ExplosionForce7、碎片再次破碎:ExplodableFragments-----------导引最近有一个项目需要实现点击气泡然后气泡破碎碎裂的效果,然后就想着写出来博客进行记录一下。效果预览源码下载地址源码工程下载链接:点击跳转,含插件。单独插件下载链接:点击跳转,进入github下载2dDestruction

c++ - is_constructible 和 is_destructible 不受 friend 声明的影响

在评估std::is_constructible和std::is_destructible时,Clang和GCC似乎不遵守friend声明。关于`is_constructible,cppreference.comsays:AccesschecksareperformedasiffromacontextunrelatedtoTandanyofthetypesinArgs.Onlythevalidityoftheimmediatecontextofthevariabledefinitionisconsidered.(该站点没有解释is_destructible如何处理访问检查,但访问修饰符

c++ - 定义 vector 元素的破坏顺序是否合理?

我知道vector元素的销毁顺序不是由C++标准定义的(参见Orderofdestructionofelementsofanstd::vector),我看到我检查过的所有编译器都从头到尾执行这种销毁-这让我感到非常惊讶,因为动态和静态数组确实如此它以相反的顺序排列,这种相反的顺序在C++世界中很常见。严格地说:我知道“容器成员......可以使用例如插入和删除成员函数以任何顺序构造和销毁”并且我不投票支持“容器保留对这些更改的某种日志””。我只会投票赞成将当前的vector析构函数实现从元素的前向破坏更改为元素的后向破坏——仅此而已。也许将此规则添加到C++标准中。为什么?以这种方式从

c++ - 在打印 "Here"之前,临时 A(3) 不应该被销毁吗?

临时的A(3)是否应该在打印“Here”之前销毁?#includestructA{inta;A(){std::cout输出:A(1)A(2)A(3)Here~A()3~A()2~A()1Liveexample 最佳答案 A(3)不是一个临时对象,而是一个名为A的A类型的对象。和这个逻辑是一样的:Aa[2]={A(1),A(2)},a2(3);我实际上并不知道你被允许这样做。 关于c++-在打印"Here"之前,临时A(3)不应该被销毁吗?,我们在StackOverflow上找到一个类似的