草庐IT

cxx_destruct

全部标签

c++ - boost static_vector 而不是 std::is_trivially_destructible

根据thisexample(左例)#include#includestructX{intk;std::arraya;boost::container::static_vectorb;~X()=default;};inthuh(){std::arrayx;return0;}看起来像boost::container::static_vector当T时可以轻易破坏是(当b被销毁时,不会在X上循环)。huh优化为xoreax,eax;ret(即return0不遍历数组。当我改用具有非平凡析构函数的包含类型时(右例)#include#includestructY{~Y();};structX{i

c++ - 用C++17编译Eigen需要_SILENCE_CXX17_NEGATORS_DEPRECATION_WARNING定义

我正在尝试分配一个稀疏矩阵block,但无法让它工作。似乎eigen使用的函数已被弃用,我可以用一些定义来修复它。但是,我确定我是应该将这些定义添加到项目中还是等待更新版本的Eigen。你们能否就定义的副作用提出建议。我写的程序是这样的#includeintmain(){Eigen::SparseMatrixm(4,4);m.block(0,0,2,2)这是警告:1>d:\eigen_3.3.4\eigen\src\core\functors\stlfunctors.h(87):errorC4996:'std::unary_negate':warningSTL4008:std::not

c++ - `is_trivially_destructible` 不适用于继承类

#includeusingnamespacestd;classNoConstructOperation{protected:NoConstructOperation()=default;virtual~NoConstructOperation()=default;public:NoConstructOperation(constNoConstructOperation&)=delete;NoConstructOperation&operator=(NoConstructOperation&)=delete;NoConstructOperation(NoConstructOperatio

c++ - 使用 _GLIBCXX_CXX11_ABI 来使用具有 C++ 11/14 功能的 pre-5.1 C++ ABI 有什么影响?

来自themanual:IntheGCC5.1releaselibstdc++introducedanewlibraryABIthatincludesnewimplementationsofstd::stringandstd::list.Thesechangeswerenecessarytoconformtothe2011C++standardwhichforbidsCopy-On-Writestringsandrequiresliststokeeptrackoftheirsize.可以使用_GLIBCXX_USE_CXX11_ABI宏来控制库header是使用旧ABI还是新ABI,而

c++ - CMake 识别 MSVC(C 和 CXX),但仍然抛出 'No CMAKE_*_COMPILER found'

我一直在四处寻找,这个问题似乎以各种形式出现了很多。最常见的原因是缺少编译器,即C和CXX编译器未知。然而,就我而言,情况并非如此。我的机器上有C和C++编译器,例如通过VisualStudio,一切都可以正常编译。但是,通过cmake,会发生这种情况:>cmake.输出:--Buildingfor:VisualStudio142015--TheCcompileridentificationisMSVC19.0.24215.1--TheCXXcompileridentificationisMSVC19.0.24215.1CMakeErroratCMakeLists.txt:12(pro

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++ - Log4cxx 自定义附加器

是否可以为log4cxx编写自定义附加程序并通过属性文件(如内置附加程序)对其进行配置?如果可能的话,我更愿意这样做而不必重建log4cxx(例如,通过派生/扩展现有的附加程序)。你能举个例子吗? 最佳答案 您可以从AppenderSkeleton或WriterAppender继承并获得相同的底层行为,而无需重建log4cxx。http://svn.apache.org/viewvc/incubator/log4cxx/trunk/src/test/cpp/vectorappender.h?view=markuphttp://svn

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