我读的书[C++标准库第二版],发现以下部分的类型:大约原始指针的内部的unique_ptr
namespace std {
template <typename T, typename D>
class unique_ptr<T[], D>
{
public:
typedef ... pointer; // may be D::pointer
typedef T element_type;
typedef D deleter_type;
...
};
}
,使得唯一的指针拥有的元素类型T可能是无效的具有未指定 类型的对象,如void *那样。还要注意定义了一个类型指针,它不一定定义为 T *。如果删除者D具有指针typedef,则将使用此类型。在这种情况下, 模板参数T具有型标签的唯一的影响,因为没有成员作为 类的unique_ptr <>依赖于T的一部分;一切都取决于指针。 好处是,unique_ptr因此可以保存其他智能指针。
我读完本节后仍不能理解“一切都取决于指针”的目的。是否有人可以提供一些样品?谢谢。
你不明白什么?为什么API是用typedef而不是'T *'来定义的? ...因为它允许根据其他类型定义API,所以更灵活。 – 2015-03-02 12:08:46