提供“安全”的环境。与 auto_ptr 一起使用的 push() 函数
我想声明一个“安全”的 push() 函数,与 auto_ptr 一起使用,如下所示: template inline void push( StackType &s, auto_ptr p ) { s.push( p.get()…
删除 boost::bind 的原始指针参数
假设我已经分配了堆A*,我想将其作为参数传递给boost::bind。 boost::bind 被保存在一些 STL 中(例如 boost::functions 的容器)以便以后处理。 我想…
删除指向不完整类型和智能指针的指针
当尝试使用带有前向声明的类型的 auto_ptr 时,如下所示: class A; ... std::auto_ptr a; A 的析构函数未被调用(显然,因为 auto_ptr 内部删除底层…
为什么 std::auto_ptr 上不允许使用运算符 []
为什么 std::auto_ptr 上不允许使用运算符 []? #include using namespace std ; template void foo( T capacity ) { auto_ptr temp = new T[capacity…
使用 C++ 将指针传递给 auto_ptr
我有一个函数可以执行此操作: static MyClass* MyFunction(myparams) { return new MyClass(myparams) } 并且我可以在另一个具有以下签名的函数中调…
将shared_ptr转换为auto_ptr?
我需要在代码中从shared_ptr 获取auto_ptr。我可以进行反向操作 - 将 auto_ptr 转换为共享指针,因为共享指针具有这样的构造函数: template explicit…
像 std::vector 这样的容器中的智能指针?
我正在学习智能指针 (std::auto_ptr),只需阅读此处 和此处 智能指针 (std::auto_ptr )不应放入容器(即std::vector)中,因为即使大多数编译器也不…
C++ std::auto_ptr 复制构造函数
std::auto_ptr 缺少 const 复制构造函数,因此我无法直接在集合中使用它。有没有办法在不使用 boost 指针集合模板的情况下获得例如 std::auto_ptr 向…
auto_ptr 陷阱和陷阱
除了使用 auto_ptr 的所有已知好处之外,auto_ptr “最差做法”是什么? 创建 auto_ptrs 的 STL 容器。 auto_ptrs 不满足“CopyConstructable”要求。…
std::auto_ptr 到 std::unique_ptr
随着新标准的到来(以及某些编译器中已经可用的部分),新类型 std::unique_ptr 应该是 std::auto_ptr 的替代品。 它们的用法是否完全重叠(这样我可…
关于 auto_ptr::reset 的问题
请任何人解释一下来自 C++ 参考站点的这段代码: #include #include using namespace std; int main () { auto_ptr p; p.reset (new int); *p=5; cout…