【发布时间】:2020-06-03 05:24:40
【问题描述】:
我很想知道,shared_ptr 类如何决定是否必须为以下语句调用delete 或delete[]?
一个。 boost::shared_ptr <char> ptr(new char);
b. boost::shared_ptr <char []> ptr(new char[100]);
【问题讨论】:
-
我想你告诉它用参数调用哪个,它要么是
<char>要么是<char[]>。 -
Boost 有许多类型的“智能”指针,但没有一个称为
boost::smart_ptr。 -
至于你的问题,请对specialization做一些研究。
-
<T>版本专门默认始终使用delete。<T[]>版本专门用于默认始终使用delete[]。没有决定要做。模板参数决定使用哪个特化。
标签: c++ boost shared-ptr