草庐IT

my_shared_ptr

全部标签

c++ - 从函数返回一个 unique_ptr vector

我目前正在阅读《HeadFirstObjectOrientedAnalysisandDesign》一书,同时也习惯了C++11的一些特性(尤其是unique_ptr和move语义)。在书中,他们以策略棋盘游戏的设计为例。它有一个板,瓷砖和瓷砖上的单位。代码是用Java编写的,我试图用C++重写它。在Java中,tile类如下:publicclassTile{privateListunits;publicTile(){units=newLinkedList();}protectedvoidaddUnit(Unitunit){units.add(unit);}protectedListge

c++ - 为什么要为具有非平凡析构函数的类声明 constrexpr 构造函数(例如 unique_ptr、std::variant)

据我了解(至少对于c++14而言),析构函数不能是constexpr如果它不是微不足道的(隐式生成或=default)。声明constexpr有什么意义?具有非平凡析构函数的结构的构造函数?structX{inta_;constexprX(inta):a_{a}{}//constexpr~X(){};//Errordtorcannotbemarkedconstexpr//~X(){};//causeserroratydeclaration:temporaryofnon-literaltype‘X’//inaconstantexpression.};templatestructY{};i

c++ - 为什么要为具有非平凡析构函数的类声明 constrexpr 构造函数(例如 unique_ptr、std::variant)

据我了解(至少对于c++14而言),析构函数不能是constexpr如果它不是微不足道的(隐式生成或=default)。声明constexpr有什么意义?具有非平凡析构函数的结构的构造函数?structX{inta_;constexprX(inta):a_{a}{}//constexpr~X(){};//Errordtorcannotbemarkedconstexpr//~X(){};//causeserroratydeclaration:temporaryofnon-literaltype‘X’//inaconstantexpression.};templatestructY{};i

c++ - make_shared<>() 中的 WKWYL 优化是否会为某些多线程应用程序引入惩罚?

几天前我碰巧看了StephanT.Lavavej的thisveryinterestingpresentation,其中提到了“WeKnowWhereYouLive”优化(抱歉在问题标题中使用了首字母缩写词,所以警告我否则问题可能已经关闭),以及HerbSutter在机器架构上的thisbeautifulone。简而言之,“WeKnowWhereYouLive”优化在于将引用计数器放置在与make_shared正在创建的对象相同的内存块上,从而导致一个单一的内存分配而不是两个,并使shared_ptr更紧凑。在总结了我从上面两个演示中学到的东西之后,我开始怀疑如果shared_ptr被多

c++ - make_shared<>() 中的 WKWYL 优化是否会为某些多线程应用程序引入惩罚?

几天前我碰巧看了StephanT.Lavavej的thisveryinterestingpresentation,其中提到了“WeKnowWhereYouLive”优化(抱歉在问题标题中使用了首字母缩写词,所以警告我否则问题可能已经关闭),以及HerbSutter在机器架构上的thisbeautifulone。简而言之,“WeKnowWhereYouLive”优化在于将引用计数器放置在与make_shared正在创建的对象相同的内存块上,从而导致一个单一的内存分配而不是两个,并使shared_ptr更紧凑。在总结了我从上面两个演示中学到的东西之后,我开始怀疑如果shared_ptr被多

C++ boost库shared_memory_object undefined reference 'shm_open'

我尝试在ubuntu11.04上编译以下代码:#include#includeintmain(){boost::interprocess::shared_memory_objectshdmem(boost::interprocess::open_or_create,"Highscore",boost::interprocess::read_write);shdmem.truncate(1024);std::cout只得到以下错误:/tmp/cc786obC.o:Infunction`boost::interprocess::shared_memory_object::priv_open

C++ boost库shared_memory_object undefined reference 'shm_open'

我尝试在ubuntu11.04上编译以下代码:#include#includeintmain(){boost::interprocess::shared_memory_objectshdmem(boost::interprocess::open_or_create,"Highscore",boost::interprocess::read_write);shdmem.truncate(1024);std::cout只得到以下错误:/tmp/cc786obC.o:Infunction`boost::interprocess::shared_memory_object::priv_open

c++ - 如何正确返回 unique_ptr 的集合

在更改我的代码以使用唯一指针后,我偶然发现了如何将对象集合返回给客户端。一般来说,我想将对象作为引用或非拥有指针传递。但如果我有一个对象集合,我不能只返回对它的引用。例如,我有一个包含对象集合的简单类,这些对象都创建一次,之后不会更改。usingObjectUPtr=std::unique_ptr;classMyClass{public:conststd::vector&GetObjectsOldStyle()const{returnmObjectsOldStyle;}conststd::vector&GetObjectsNewStyleA()const{//Idon'tliketha

c++ - 如何正确返回 unique_ptr 的集合

在更改我的代码以使用唯一指针后,我偶然发现了如何将对象集合返回给客户端。一般来说,我想将对象作为引用或非拥有指针传递。但如果我有一个对象集合,我不能只返回对它的引用。例如,我有一个包含对象集合的简单类,这些对象都创建一次,之后不会更改。usingObjectUPtr=std::unique_ptr;classMyClass{public:conststd::vector&GetObjectsOldStyle()const{returnmObjectsOldStyle;}conststd::vector&GetObjectsNewStyleA()const{//Idon'tliketha

【暴力更换OPPO启动器为其它三方(Nova Launcher in my Case Scenario)】

狠搞更换OPPO启动器为三方(Nova)我咋就不知道狮子座也有这么强烈的强迫症呢?!我每次玩儿新手机必须得搞搞应用图标呀壁纸呀啥的,必须得打上你“磊哥”的风格烙印。但是国内的启动器的通病就是用不了三方的app图标包,只能从什么自己公司平台的主题里面整,说实话,1%倒还有些想法,剩下的99%都是博眼球的渣渣,无法满足我的欲望。话不多说,先贴上咱们论坛的优秀帖子作为我的指路人!OPPO手机既然不好Root,那就不Root,咱玩儿高度定制化的启动器也是挺不错的呢。想换启动器的同学朋友一定要好好拜读以下3篇文章,第一避免出错,第二避免变砖,我们在玩儿机的同时也要保障我们的信息安全不是么。OPPO设备设