在C++ 11中,我缺少一個用於將指針分解爲std::unique_ptr
的合成糖。因此,我寫了以下小幫手函數std::uniquify_ptr
,通常用於易變(非構造函數)賦值的可變類成員(通常是不同種類的緩存)。C++ 11指針唯一化幫助函數
#include <memory>
namespace std
{
template<typename T>
inline unique_ptr<T> uniquify_ptr(T* ptr)
{
return unique_ptr<T>(ptr);
}
}
我失去了從安全來看這裏的東西嗎?是否有一些類似的功能可用?
我的工廠函數'std :: uniquify_ptr(ptr)'的整個想法是編譯器可以從'ptr'推導出模板參數。爲什麼不能'std :: unique_ptr'爲我猜'T'?我已經在GCC-4.6.1上測試了這些東西。 –