【发布时间】:2023-01-12 10:52:54
【问题描述】:
我正在学习 Apache Arrow 中的 Gandiva 模块。我发现许多 API 需要 std::shared_ptr *p 形式的参数。例如,here 是一个典型的 API
static inline Status Make(SchemaPtr schema, ConditionPtr condition, std::shared_ptr<Filter> *filter)
我不明白为什么需要使用指向 shared_ptr 的指针而不是简单的 shared_ptr。以我的理解,在C++中应该尽可能避免裸指针,而shared_ptr被设计成裸指针的替代品。
【问题讨论】:
-
“在 C++ 中应尽可能避免原始指针”- 最好将其表述为“尽可能合理”。最好将原始指针用作非拥有指针,而不是使用笨拙的(但可能!)长度来避免使用原始指针。
标签: c++ c++11 shared-ptr apache-arrow