草庐IT

my_shared_ptr

全部标签

c++ - 为什么make_shared的大小是两个指针?

如代码here所示,make_shared返回的对象的大小是两个指针。但是,为什么make_shared不能像下面这样工作(假设T是我们要创建共享指针的类型):Theresultofmake_sharedisonepointerinsize,whichpointstoofallocatedmemoryofsizesizeof(int)+sizeof(T),wheretheintisareferencecount,andthisgetsincrementedanddecrementedonconstruction/destructionofthepointers.unique_ptrs只

ruby - 无法用指南针观看 : text file busy on shared folder

我在Debian6上安装了RVM+Ruby+Sass+Compass,现在我正尝试通过VirtualBox在共享文件夹上“compasswatch”。主机:Windows7嘉宾:Debian6Debian6可以在Windows7共享文件夹上写入文件,它工作正常这不是问题。#compasswatchErrno::ETXTBSYonline886of/var/lib/gems/1.8/gems/sass-3.2.12/lib/sass../sass/util.rb:Textfilebusy.....sass-cache...它设法在.sass-cache中创建了一个文件夹,但没有在其中创建

ruby-on-rails - 更新到 Rails 3.2.2 : How to properly move my plugin from the '/vendor' to '/lib' directory?

我正在将RubyonRails从3.1升级到3.2.2,我想知道我应该做什么以及我应该注意什么以便正确移动我的供应商插件(注意:它不是一个gem,目前我不打算将它变成一个gem)从目录/vendor到/lib如officialdocumentation中所写:Rails3.2deprecatesvendor/pluginsandRails4.0willremovethemcompletely.YoucanstartreplacingthesepluginsbyextractingthemasgemsandaddingtheminyourGemfile.Ifyouchoosenottom

ruby - 使用 RSpec 测试纯 Ruby bin/my_app.rb 应用程序?

我有一个用纯Ruby编写的命令行(非RAILS)应用程序,我正在通过Cucumber和RSpec运行它。它遵循lib、bin、spec和feature目录的典型应用程序层次结构。到目前为止,我一直遵循编写失败的Cucumber功能/场景的传统流程,下降到RSpec以驱动支持的lib文件,然后让场景通过。不幸的是,在“bin/my_application.rb”中推出主应用程序入口点时,这似乎并不那么直接。对我来说主要问题是我不是在描述RSpec中的类,它是一个顺序Ruby脚本,用于管理应用程序的类并通过命令行参数和选项进行初始化。“bin/my_application.rb”只是一个小

ruby - Chef : Can I share common per-environment run list items?

我在Chef中使用环境,我想使用每个环境的运行列表。问题是我不想重复自己(就像我现在做的那样)。示例:{"name":"myapp","default_attributes":{},"json_class":"Chef::Role","env_run_lists":{"production":[#Haslesspackagesbecauseservicesarespreadacrossspecializednodes"role[base]","recipe[mysql::client]","recipe[myapp]"],"staging":[#Haslesspackagesbecau

c++ - 如果 unique_ptr 需要存储删除器,它怎么能没有开销?

首先看看C++Primer说的unique_ptr和shared_ptr:16.1.6美元。效率和灵activeWecanbecertainthatshared_ptrdoesnotholdthedeleterasadirectmember,becausethetypeofthedeleterisn’tknownuntilruntime.Becausethetypeofthedeleterispartofthetypeofaunique_ptr,thetypeofthedeletermemberisknownatcompiletime.Thedeletercanbestoreddire

c++ - 如果 unique_ptr 需要存储删除器,它怎么能没有开销?

首先看看C++Primer说的unique_ptr和shared_ptr:16.1.6美元。效率和灵activeWecanbecertainthatshared_ptrdoesnotholdthedeleterasadirectmember,becausethetypeofthedeleterisn’tknownuntilruntime.Becausethetypeofthedeleterispartofthetypeofaunique_ptr,thetypeofthedeletermemberisknownatcompiletime.Thedeletercanbestoreddire

c++ - weak_ptr 的性能损失是多少?

我目前正在为游戏设计一个对象结构,在我的例子中,最自然的组织变成了一棵树。作为智能指针的忠实粉丝,我只使用shared_ptr的。然而,在这种情况下,树中的子节点需要访问它的父节点(例如——map上的生物需要能够访问map数据——因此他们的父节点的数据。拥有的方向当然是map拥有它的存在,因此持有指向它们的共享指针。然而,为了从一个存在中访问map数据,我们需要一个指向父级的指针——智能指针的方式是使用一个引用,即weak_ptr。但是,我曾经读到锁定weak_ptr是一项昂贵的操作——也许这不再是真的了——但考虑到weak_ptr会经常被锁定,我担心这种设计注定性能不佳。因此问题:锁

c++ - weak_ptr 的性能损失是多少?

我目前正在为游戏设计一个对象结构,在我的例子中,最自然的组织变成了一棵树。作为智能指针的忠实粉丝,我只使用shared_ptr的。然而,在这种情况下,树中的子节点需要访问它的父节点(例如——map上的生物需要能够访问map数据——因此他们的父节点的数据。拥有的方向当然是map拥有它的存在,因此持有指向它们的共享指针。然而,为了从一个存在中访问map数据,我们需要一个指向父级的指针——智能指针的方式是使用一个引用,即weak_ptr。但是,我曾经读到锁定weak_ptr是一项昂贵的操作——也许这不再是真的了——但考虑到weak_ptr会经常被锁定,我担心这种设计注定性能不佳。因此问题:锁

c++ - enable_shared_from_this 和继承

我有一个继承自enable_shared_from_this的类型,以及从该类型继承的另一种类型。现在我不能使用shared_from_this方法,因为它返回基类型,并且在特定的派生类方法中我需要派生类型。直接从这里构造一个shared_ptr是否有效?编辑:在一个相关问题中,我如何才能从shared_ptr类型的右值移动类型为shared_ptr?我使用dynamic_cast来验证它确实是正确的类型,但现在我似乎无法完成实际的移动。 最佳答案 一旦您获得shared_ptr,你可以使用static_pointer_cast将其