接下来介绍 C++11 对于 C++ 标准库的变更。 C++11 把 TR1 并⼊了进来,废弃了 C++98 中的 auto_ptr,同时将 shared_ptr 和 uniq_ptr 并⼊ std 命名空间。
智能指针在 [Effective C++: Item 13] 中已经有不少讨论了。这⾥给⼀个例⼦:
int main(){
std::shared_ptr<double> p_first(new double);
{
std::shared_ptr<double> p_copy = p_first;
*p_copy = 21.2;
} // p_copy 被销毁,⾥⾯的 double 还有⼀个引⽤因此仍然保持
return 0; // p_first 及其⾥⾯的 double 销毁
}