在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上测试了这些东西。 –