我讀的書[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