问题标签 [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.

0 投票
2 回答
953 浏览

c++ - Can boost::smart_ptr be used in polymorphism?

Can boost::smart_ptr such as scoped_ptr and shared_ptr be used in polymorphism?

0 投票
1 回答
4132 浏览

casting - 如何在多态中使用 boost::smart_ptr?

Boost 智能指针可以与多态一起使用,但是如何将子类转换回指针呢?

最后一行没有编译并给出error C2440: 'type cast' : cannot convert from 'boost::shared_ptr<T>' to 'boost::shared_ptr<T>'

0 投票
2 回答
3397 浏览

c++ - 将 shared_ptr 传递给 std::fstream * 编辑

因为我是 C++ 的新手,所以我在理解shared_ptr 文档时遇到了一些问题。我希望你能帮助我的示例代码:

我收到以下错误:

问候

编辑

应用@Space_C0wb0y 的建议后:

我收到以下错误:

我调试了一下,发现问题出在

如果它不在函数内,open_file我也会得到同样的错误

0 投票
3 回答
518 浏览

c++ - boost::scoped_ptr 是否违反了逻辑常量的准则

在 boost::scoped_ptroperator*operator->被声明的const函数中,尽管它们返回T&并且T*可能允许客户端更改底层数据。这违反了逻辑常量的思想(Myers,Effective C++)

const 函数不应该有签名吗?

0 投票
1 回答
142 浏览

c++ - boost::smart_ptr 和 COW 容器

我在要进行写时复制的容器中使用 boost::scoped_array 但我担心 scoped_array 不起作用。哪个 boost::smart_ptr 容器最接近牛安全范围数组?

0 投票
2 回答
448 浏览

c++ - 如何从 boost 库中取出单个元素(例如 shared_pointer)?

我一直在玩一些 Boost 组件,而我认为在我正在从事的项目中直接需要的唯一一个是boost::shared_ptr.

在我的项目中仅包含 Boost smart_ptr 目录所需的文件shared_ptr或至少包含 Boost smart_ptr 目录的文件会很困难吗?他们似乎对 Boost 的其他部分有一些外部依赖——但我认为有一种简单的方法可以只使用 Boost 库的某些组件,但我错过了它。

如果您能告诉我我需要哪些部分或将我指向一个好的教程,我将不胜感激!

0 投票
1 回答
1956 浏览

c++ - 这里发生了什么?

这不编译,

但这确实:

还有这个 :

我想这与 SFINAE 有关(我还没有费心去理解)?朋友限定符是否将定义的函数作为自由函数放在封闭的命名空间中?

编辑

谁删除了他们的帖子,成员函数 non-friend asadd_ref和(文档release中没有提到这些特定的成员函数......)确实解决了这个问题。带有限定符的嵌套定义会发生什么?friend

0 投票
0 回答
198 浏览

c++ - 为什么我的执行路径不能进入我的构造函数

我的程序简短而简单,旨在测试我的 PCA 回归类。

这是它产生的输出的结尾:

如您所见,最后一个输出来自我在堆栈上创建我的回归PCA 实例之前设置的标志。

这是该类的声明。

请注意,当我包含 boost 的 shared_array 时,程序不仅没有产生输出就死了,而且还因为核心转储而最不优雅地死了。我不知道为什么。

这是回归PCA类的实现:

请注意,我知道执行路径不会进入构造函数,因为 "std::cout << "Flag ALPHA" << std::endl;" 行 不产生输出。

所以,有几个谜团。

1) 为什么仅仅包含 boost 的 shared_array 会导致核心转储?2)当我求助于裸数组指针时(是的,我知道内存泄漏,但这是我现在最不麻烦的事情,如果 boost 的共享数组对我有用,我会避免),为什么执行不进入我的构造函数?

任何见解将不胜感激。

顺便说一句:如果你注意到我对 GSL 做了一些愚蠢的事情,我会很高兴知道它,即使我的问题似乎与 GSL 无关。

0 投票
1 回答
80 浏览

c++ - 哪种类型的指针用于拥有的指针集合

所以,我做了一些谷歌搜索,试图找出是否有一些最好的智能指针来处理这个问题,但我还没有找到一个好的选择。

可以说我有一些类汽车。我还有一个std::map<int carkey, Car*>就是JunkYard。

Car* 可以由某个 Driver 添加到 JunkYard,Driver 自己新建了 Car,但司机立即失去了 Car* 的所有责任。

我希望垃圾场对其所有汽车负责,人们可以访问垃圾场中的汽车以移除零件并从汽车中取出废金属,或者可以压碎但垃圾场永远摧毁它。

一天结束时,垃圾场会摧毁所有的汽车并关闭。

--

A)如果这是一个多线程应用程序,其中驱动程序可以同时访问汽车,而垃圾场可以摧毁汽车,我认为 shared_ptr 可能是最好的?不过,这是矫枉过正吗?其他线程可以访问汽车,但他们永远不会长期拥有它,它必须始终属于垃圾场。

B)如果这是单线程的,那么最好的选择是什么-假设它仍然是 map< some_smart_car_ptr> 。我想让容器自己删除汽车。例如调用 map.erase(...) 应该删除指针以及将其从地图中删除。

0 投票
5 回答
94561 浏览

c++ - 显式删除 shared_ptr

这里有一个简单的问题:您是否允许自己显式删除 a boost::shared_ptr?你应该吗?

澄清一下,我并不是说删除shared_ptr. 我的意思是实际shared_ptr本身。我知道大多数人建议不要这样做,所以我只是想知道是否可以明确地这样做。