Files
XCEngine/docs/api/core/smartptr/UniqueRef.md

47 lines
1015 B
Markdown
Raw Normal View History

# SmartPtr::UniqueRef
```cpp
template<typename T>
using UniqueRef = std::unique_ptr<T>;
```
独占所有权的智能指针类型别名。
**描述**
`UniqueRef<T>``std::unique_ptr<T>` 的类型别名,提供独占所有权的智能指针。每个对象只能有一个 `UniqueRef` 持有,当 `UniqueRef` 被销毁时,对象会被自动删除。不能复制,只能移动。
**模板参数:**
- `T` - 被托管对象的类型
**复杂度:** O(1)
**示例:**
```cpp
#include <XCEngine/Core/SmartPtr.h>
class MyClass {
public:
void DoSomething() { /* ... */ }
};
Core::UniqueRef<MyClass> unique = Core::MakeUnique<MyClass>();
if (unique) {
unique->DoSomething();
}
// 自定义删除器
Core::UniqueRef<FILE, decltype(&fclose)>
file(fopen("test.txt", "r"), &fclose);
// 转移所有权
Core::UniqueRef<MyClass> moved = std::move(unique);
```
## 相关文档
- [SmartPtr 总览](smartptr.md) - 返回类总览
- [MakeUnique](MakeUnique.md) - 创建 UniqueRef 的工厂函数