草庐IT

Make_shared

全部标签

c++ - 我应该通过引用传递 shared_ptr 吗?

这个问题在这里已经有了答案:Shouldwepassashared_ptrbyreferenceorbyvalue?(10个回答)关闭8年前。传递shared_ptr的最佳做法是什么?目前我像这样传递shared_ptr函数参数:voidfunction1(shared_ptr&value); 最佳答案 在受控情况下,您可以通过常量引用传递共享指针。确保没有人同时删除该对象,但如果您注意引用的对象,这应该不会太难。一般来说,您应该将共享指针作为直接拷贝传递。这赋予了它预期的语义:每个包含共享指针拷贝的作用域都凭借其在所有权中的“份额

c++ - 我应该通过引用传递 shared_ptr 吗?

这个问题在这里已经有了答案:Shouldwepassashared_ptrbyreferenceorbyvalue?(10个回答)关闭8年前。传递shared_ptr的最佳做法是什么?目前我像这样传递shared_ptr函数参数:voidfunction1(shared_ptr&value); 最佳答案 在受控情况下,您可以通过常量引用传递共享指针。确保没有人同时删除该对象,但如果您注意引用的对象,这应该不会太难。一般来说,您应该将共享指针作为直接拷贝传递。这赋予了它预期的语义:每个包含共享指针拷贝的作用域都凭借其在所有权中的“份额

c++ - `const shared_ptr<T>` 和 `shared_ptr<const T>` 之间的区别?

我正在为C++中的共享指针编写一个访问器方法,如下所示:classFoo{public:return_typegetBar()const{returnm_bar;}private:boost::shared_ptrm_bar;}所以为了支持getBar()的const-ness返回类型应该是boost::shared_ptr防止修改Bar它指向。我的猜测是shared_ptr是我想要返回的类型,而constshared_ptr将防止重新分配指针本身以指向不同的Bar但允许修改Bar它指向...但是,我不确定。如果确定知道的人可以确认这一点,或者如果我弄错了,我将不胜感激。谢谢!

c++ - `const shared_ptr<T>` 和 `shared_ptr<const T>` 之间的区别?

我正在为C++中的共享指针编写一个访问器方法,如下所示:classFoo{public:return_typegetBar()const{returnm_bar;}private:boost::shared_ptrm_bar;}所以为了支持getBar()的const-ness返回类型应该是boost::shared_ptr防止修改Bar它指向。我的猜测是shared_ptr是我想要返回的类型,而constshared_ptr将防止重新分配指针本身以指向不同的Bar但允许修改Bar它指向...但是,我不确定。如果确定知道的人可以确认这一点,或者如果我弄错了,我将不胜感激。谢谢!

【Linux】Linux环境基础开发工具的使用 ———(yum、vim、gcc&g++、gdb、make/Makefile、进度条 、git)

🌈欢迎来到Linux专栏~~Linux环境基础开发工具使用(꒪ꇴ꒪(꒪ꇴ꒪)🐣,我是Scort🎓🌍博客主页:张小姐的猫~江湖背景🌍快上车🚘,握好方向盘跟我有一起打天下嘞!送给自己的一句鸡汤🤔:🔥集中起来的意志可以击穿顽石🔥🙏作者水平很有限,如果发现错误,可在评论区指正,感谢🙏🎉🎉欢迎持续关注!🎉🎉Linux环境基础开发工具使用🌈欢迎来到Linux专栏~~Linux环境基础开发工具使用🌍一.Linux软件包管理器yum🌈1.什么是软件包🌈2.软件安装三板斧💦查看软件包💦如何安装软件💦如何卸载软件🌍二.vim的使用🌈1.vim的基本概念🌈2.vim命令模式指令集💦光标移动💦文本操作🌈3.vim底行

【Linux】Linux环境基础开发工具的使用 ———(yum、vim、gcc&g++、gdb、make/Makefile、进度条 、git)

🌈欢迎来到Linux专栏~~Linux环境基础开发工具使用(꒪ꇴ꒪(꒪ꇴ꒪)🐣,我是Scort🎓🌍博客主页:张小姐的猫~江湖背景🌍快上车🚘,握好方向盘跟我有一起打天下嘞!送给自己的一句鸡汤🤔:🔥集中起来的意志可以击穿顽石🔥🙏作者水平很有限,如果发现错误,可在评论区指正,感谢🙏🎉🎉欢迎持续关注!🎉🎉Linux环境基础开发工具使用🌈欢迎来到Linux专栏~~Linux环境基础开发工具使用🌍一.Linux软件包管理器yum🌈1.什么是软件包🌈2.软件安装三板斧💦查看软件包💦如何安装软件💦如何卸载软件🌍二.vim的使用🌈1.vim的基本概念🌈2.vim命令模式指令集💦光标移动💦文本操作🌈3.vim底行

c++ - 如何在只有 protected 或私有(private)构造函数的类上调用::std::make_shared?

我有这段代码不起作用,但我认为意图很明确:testmakeshared.cpp#includeclassA{public:static::std::shared_ptrcreate(){return::std::make_shared();}protected:A(){}A(constA&)=delete;constA&operator=(constA&)=delete;};::std::shared_ptrfoo(){returnA::create();}但是我编译的时候出现这个错误:g++-std=c++0x-march=native-mtune=native-O3-Walltes

c++ - 如何在只有 protected 或私有(private)构造函数的类上调用::std::make_shared?

我有这段代码不起作用,但我认为意图很明确:testmakeshared.cpp#includeclassA{public:static::std::shared_ptrcreate(){return::std::make_shared();}protected:A(){}A(constA&)=delete;constA&operator=(constA&)=delete;};::std::shared_ptrfoo(){returnA::create();}但是我编译的时候出现这个错误:g++-std=c++0x-march=native-mtune=native-O3-Walltes

c++ - shared_ptr 到数组 : should it be used?

只是一个关于shared_ptr的小查询.使用shared_ptr指向数组是一种好习惯吗?例如,shared_ptrsp(newint[10]);如果不是,那为什么不呢?我已经知道的一个原因是不能增加/减少shared_ptr。因此它不能像普通的指向数组的指针一样使用。 最佳答案 使用C++17,shared_ptr可用于管理动态分配的数组。shared_ptr在这种情况下,模板参数必须是T[N]或T[].所以你可以写shared_ptrsp(newint[10]);来自n4659,[util.smartptr.shared.con

c++ - shared_ptr 到数组 : should it be used?

只是一个关于shared_ptr的小查询.使用shared_ptr指向数组是一种好习惯吗?例如,shared_ptrsp(newint[10]);如果不是,那为什么不呢?我已经知道的一个原因是不能增加/减少shared_ptr。因此它不能像普通的指向数组的指针一样使用。 最佳答案 使用C++17,shared_ptr可用于管理动态分配的数组。shared_ptr在这种情况下,模板参数必须是T[N]或T[].所以你可以写shared_ptrsp(newint[10]);来自n4659,[util.smartptr.shared.con