问题标签 [boost-smart-ptr]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - Can boost::smart_ptr be used in polymorphism?
Can boost::smart_ptr such as scoped_ptr and shared_ptr be used in polymorphism?
casting - 如何在多态中使用 boost::smart_ptr?
Boost 智能指针可以与多态一起使用,但是如何将子类转换回指针呢?
最后一行没有编译并给出error C2440: 'type cast' : cannot convert from 'boost::shared_ptr
<T>
' to 'boost::shared_ptr<T>
'
c++ - 将 shared_ptr 传递给 std::fstream * 编辑
因为我是 C++ 的新手,所以我在理解shared_ptr 文档时遇到了一些问题。我希望你能帮助我的示例代码:
我收到以下错误:
问候
编辑
应用@Space_C0wb0y 的建议后:
我收到以下错误:
我调试了一下,发现问题出在
如果它不在函数内,open_file
我也会得到同样的错误
c++ - boost::scoped_ptr 是否违反了逻辑常量的准则
在 boost::scoped_ptroperator*
和operator->
被声明的const
函数中,尽管它们返回T&
并且T*
可能允许客户端更改底层数据。这违反了逻辑常量的思想(Myers,Effective C++)
const 函数不应该有签名吗?
c++ - boost::smart_ptr 和 COW 容器
我在要进行写时复制的容器中使用 boost::scoped_array 但我担心 scoped_array 不起作用。哪个 boost::smart_ptr 容器最接近牛安全范围数组?
c++ - 如何从 boost 库中取出单个元素(例如 shared_pointer)?
我一直在玩一些 Boost 组件,而我认为在我正在从事的项目中直接需要的唯一一个是boost::shared_ptr
.
在我的项目中仅包含 Boost smart_ptr 目录所需的文件shared_ptr
或至少包含 Boost smart_ptr 目录的文件会很困难吗?他们似乎对 Boost 的其他部分有一些外部依赖——但我认为有一种简单的方法可以只使用 Boost 库的某些组件,但我错过了它。
如果您能告诉我我需要哪些部分或将我指向一个好的教程,我将不胜感激!
c++ - 这里发生了什么?
这不编译,
但这确实:
还有这个 :
我想这与 SFINAE 有关(我还没有费心去理解)?朋友限定符是否将定义的函数作为自由函数放在封闭的命名空间中?
编辑
谁删除了他们的帖子,成员函数 non-friend asadd_ref
和(文档release
中没有提到这些特定的成员函数......)确实解决了这个问题。带有限定符的嵌套定义会发生什么?friend
c++ - 为什么我的执行路径不能进入我的构造函数
我的程序简短而简单,旨在测试我的 PCA 回归类。
这是它产生的输出的结尾:
如您所见,最后一个输出来自我在堆栈上创建我的回归PCA 实例之前设置的标志。
这是该类的声明。
请注意,当我包含 boost 的 shared_array 时,程序不仅没有产生输出就死了,而且还因为核心转储而最不优雅地死了。我不知道为什么。
这是回归PCA类的实现:
请注意,我知道执行路径不会进入构造函数,因为 "std::cout << "Flag ALPHA" << std::endl;" 行 不产生输出。
所以,有几个谜团。
1) 为什么仅仅包含 boost 的 shared_array 会导致核心转储?2)当我求助于裸数组指针时(是的,我知道内存泄漏,但这是我现在最不麻烦的事情,如果 boost 的共享数组对我有用,我会避免),为什么执行不进入我的构造函数?
任何见解将不胜感激。
顺便说一句:如果你注意到我对 GSL 做了一些愚蠢的事情,我会很高兴知道它,即使我的问题似乎与 GSL 无关。
c++ - 哪种类型的指针用于拥有的指针集合
所以,我做了一些谷歌搜索,试图找出是否有一些最好的智能指针来处理这个问题,但我还没有找到一个好的选择。
可以说我有一些类汽车。我还有一个std::map<int carkey, Car*>
就是JunkYard。
Car* 可以由某个 Driver 添加到 JunkYard,Driver 自己新建了 Car,但司机立即失去了 Car* 的所有责任。
我希望垃圾场对其所有汽车负责,人们可以访问垃圾场中的汽车以移除零件并从汽车中取出废金属,或者可以压碎但垃圾场永远摧毁它。
一天结束时,垃圾场会摧毁所有的汽车并关闭。
--
A)如果这是一个多线程应用程序,其中驱动程序可以同时访问汽车,而垃圾场可以摧毁汽车,我认为 shared_ptr 可能是最好的?不过,这是矫枉过正吗?其他线程可以访问汽车,但他们永远不会长期拥有它,它必须始终属于垃圾场。
B)如果这是单线程的,那么最好的选择是什么-假设它仍然是 map< some_smart_car_ptr> 。我想让容器自己删除汽车。例如调用 map.erase(...) 应该删除指针以及将其从地图中删除。
c++ - 显式删除 shared_ptr
这里有一个简单的问题:您是否允许自己显式删除 a boost::shared_ptr
?你应该吗?
澄清一下,我并不是说删除shared_ptr
. 我的意思是实际shared_ptr
本身。我知道大多数人建议不要这样做,所以我只是想知道是否可以明确地这样做。