c++ - 一旦你采用了 boost 的智能指针,有没有使用原始指针的情况?

标签 c++ boost smart-pointers

我很好奇,因为我开始采用更多的 boost 惯用语以及似乎是最佳实践的最佳实践那些没有接触过“现代 C++”的人?

最佳答案

我几乎不使用 shared_ptr,因为我通常避免共享所有权。因此,我使用 boost::scoped_ptr 之类的东西来“拥有”一个对象,但对它的所有其他引用都将是原始指针。示例:

boost::scoped_ptr<SomeType> my_object(new SomeType);
some_function(my_object.get());

但是 some_function 会处理一个原始指针:

void some_function(SomeType* some_obj)
{
  assert (some_obj);
  some_obj->whatever();
}

关于c++ - 一旦你采用了 boost 的智能指针,有没有使用原始指针的情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/363351/

相关文章:

c++ - XCode boost "Semantic Issue - undeclared identifier va_start"

c++ - 创建具有最小深度的二叉搜索树

c++ - boost shared_from_this<>()

c++ - boost::wait 和 boost::condition 是否必须共享相同的互斥对象

c++ - pair(const std::pair<_T1, _T2>&) 被隐式删除,因为默认定义格式不正确错误:分配 unique_ptr 映射时

c++ - 如何在c++11中实现工厂+装饰器模式

c++ - '.' token c++ 之前的预期初始化器

c++ - 使用类作为具有前向声明的模板化类的模板参数

c++ - 从 C++ 缓冲区到 python::boost::list

c++ - 不匹配 ‘operator[]’(操作数类型为 ‘std::unique_ptr<std::vector<int>>’ 和 ‘int’)