为什么要使用其中之一:`boost::shared_array` VS `boost::shared_ptr`?
因此,要处理图像或类似图像的大块内存,显然有很多选择。 因为我是智能指针和 RAII 的粉丝,所以我想知道使用 : a shared_ptr 到 std::vector 或 使…
从托管代码包含时未定义shared_ptr
我正在尝试围绕非托管 C++ 静态库编写托管包装器 (C++/CLI),但遇到两个问题: 非托管库在其标头中使用 std::shared_ptr 。包含 ,并且标头作为非托管…
C++ shared_ptr继承内存泄漏
我遇到的情况是,我有一个子类的基类的shared_ptr。 当shared_ptr去删除指针时,只有父析构函数被调用。 父母的析构函数是虚拟的,孩子的不是,尽管我…
如果您总是将其存储在shared_ptr中,您的接口是否需要虚拟析构函数?
由于 boost::/std::shared_ptr 具有类型擦除其删除器的优势,因此您可以做一些不错的事情,例如 #include typedef std::shared_ptr gc_ptr; int main(…
BOOST_FOREACH 迭代 boost::shared_ptr;
我正在做与此项目类似的事情 正确的 BOOST_FOREACH 用法? 但是,我返回的列表已包装在 boost::shared_ptr 中。如果我没有在 BOOST_FOREACH 循环之前…
可以从“enable_shared_from_this”派生一个类提高性能?
make_shared 比单独调用 new 并创建 shared_ptr 的性能更高,因为 make_shared 为引用计数和弱分配空间与客户端对象实例位于同一内存块中(有效地为 s…
转换shared_ptr类型向量的迭代器
如何转换shared_ptr类型向量的迭代器?考虑以下示例: typedef boost::shared_ptr type_myClass; vector vect; vector::iterator itr = vect.begin();…
对 boost::smart_ptr 的引用指向对象并检查其有效性
鉴于以下情况: class Curve { public: typedef boost::shared_ptr Pointer; // ... private: // ... }; class CurveShift: public Curve { public: C…
Pimpl 习惯用法和内部对象协作,无需友元声明
我正在使用 pimpl 习惯用法实现几个类,并且遇到了一些设计问题。 首先,我总是看到 pimpl 这样做 class Object { public: Visible(); ~Visible(); ..…
在 Visual C 上哪个更快? 2010 - std::shared_ptr 还是 boost::shared_ptr?
有人在发布模式构建中测试过这个吗?或者实现如此相似,没有显着差异? 我对以下速度感兴趣: 创建一个新的shared_ptr 创建shared_ptr的副本 取消引用…
C++:shared_ptr 作为 unordered_set 的键
考虑下面的代码 #include #include #include int main() { boost::unordered_set s; s.insert(5); s.insert(5); // s.size() == 1 boost::unordered_s…
C++在 boost::ptr_container 中共享元素?
请考虑以下代码: int main() { typedef boost::ptr_vector ptr_vector; ptr_vector vec0; vec0.push_back(new int(1)); vec0.push_back(new int(2));…
我应该从使用 boost::shared_ptr 切换到 std::shared_ptr 吗?
我想使用 -std=c++0x 在 GCC 中启用对 C++0x 的支持。我绝对不一定需要 GCC 中的任何当前支持的 C++11 功能 4.5(很快就会有 4.6),但我想开始习惯它…
初始化列表中的闭包删除器 (C++0x) 和编译器警告
我从 Visual C++ 2010 收到 警告 C4355: 'this' :used in base memberinitializer list: 我有一个持有句柄的类,并且我想自动关闭该句柄,即使该类的…