Howard Hinnantexplainedunique_ptr
也可以使用自定義存儲類型。他提到的例子是「共享內存」。unique_ptr自定義存儲類型的例子?
他只給出了粗略的想法(這對於快速介紹來說很好)。但任何人都可以完成他的例子「自定義存儲類型」(無論是否共享內存)?
爲了支持將
unique_ptr
到共享存儲器中,自定義刪除器可以包含一個自定義指針類型(通常不共享存儲器應用的實際指針)。一個簡單的放置一個嵌套式稱爲指針看齊您刪除器內的指針行爲,公開訪問:
template <class T>
class MyDeleter
{
public:
class pointer
{
public:
friend bool operator==(pointer x, pointer y);
friend bool operator!=(pointer x, pointer y);
// ...
};
void operator()(pointer p);
};
void test()
{
unique_ptr<int, MyDeleter<int> > p;
MyDeleter<int>::pointer p2 = p.get(); // A custom pointer type used for storage
}
我懷疑// ...
必須擴展,並test()
可能會做的一些額外的東西真正的「自定義存儲類型」示例。
有人能告訴我在哪裏,他/她
- 實際上已經使用這種定製,
- 並在這方面,
- 這是什麼定製代碼,(在
//...
大概) - 以及如何客戶端代碼使用它? (在
test()
可能)
有不太可能是這許多用途customization-因爲它是一個非常新的庫功能。 – Puppy 2011-06-07 23:36:04