c++ 11指针惟一帮助函数
C++11 Pointer Uniquify Helper Function
在c++ 11中,我缺少一个语法糖来惟一指向std::unique_ptr
的指针。因此,我编写了以下小的辅助函数std::uniquify_ptr
,通常用于简化(非构造函数)赋值可变类成员(通常是不同类型的缓存)。
#include <memory>
namespace std
{
template<typename T>
inline unique_ptr<T> uniquify_ptr(T* ptr)
{
return unique_ptr<T>(ptr);
}
}
我是否从安全的角度遗漏了什么?是否已经有类似的功能?
没有,没有类似的功能可用。
auto ptr(std::uniquify_ptr(new T()));
比
好吗?std::unique_ptr<T> ptr(new T());
?也就是说,为什么应该存在 ?
unique_ptr<T>
已经可以直接从T*
构造,所以不太需要。这样的工厂函数除了语法糖(例如auto x = make_unique<T>(...);
)之外几乎没有什么用处。另外,你的move
是多余的。
@Schaub:我使用这个改变现有的可变 std::unique_ptr
类成员的值。在这种情况下
m_hashA = std::uniquify(new Hashes(cnt));
比
更方便m_hashA = std::unique_ptr<Hashes>(new Hashes(cnt)));
当成员声明为
时mutable std::unique_ptr<Hashes> m_hashA; ///< Hash Table for Alternatives.
谢谢
相关文章:
- 需要帮助将结构数组传递给函数
- C++调用具有 *this 属性的单个帮助程序函数
- 用于检查值是否为其任何参数的帮助程序函数
- 无法将 2D 数组传递到 c++ 中的帮助程序函数中
- 在确定函数的时间复杂度时需要帮助
- C2783: 无法推断帮助程序函数的模板参数
- 友元函数需要一个帮助程序函数
- 在何处放置与类方法相关的帮助程序函数C++
- 需要帮助将字符串插入函数
- 从函数打印 CLI 帮助消息后,我应该如何干净地退出 C++ 程序?
- 类参数化与类和帮助程序函数混淆
- 需要有关在 C++ 中的函数 display() 上查找未定义引用的帮助
- 如何使用类中的函数从 main 打印变量,帮助理解 OOP c++
- 函数无法正常工作,调试器没有帮助
- 为什么这段代码不直接使用 C++ 幂函数?有人可以帮助我使用此代码中的电源函数吗?
- 函数和指针帮助:程序生成,但崩溃,没有任何特定错误
- 需要帮助理解 2D 数组并将其传递到函数中
- 在哪里/如何声明和实现必须由成员方法使用的帮助函数
- c++ 11指针惟一帮助函数
- 有人可以帮助函数重载吗?