unique_ptr的成员函数release到底会不会释放内存空间
我正在看《c++ primer》第五版中文版,关于unique_ptr。
在第418页,书上说:
unique_ptr的release()只是放弃对指针的控制权,返回指针,并将自己置为空。
换句话说,release并不会调用delete。所以我们可以这样:
unique_ptr<int> up(new int(10));
unique_ptr<int> up2(up.release());
而在第425页是这样写的:
unique_ptr<int[]> up(new int[10]());
up.release(); // 自动delete[]销毁其指针
这里我就不明白了,怎么release又自动调用delete[]了?前面说release不会delete而只是放弃对指针的控制权啊?
是我理解有问题还是书上写错了?