ErasedUnique.ixx File
Type-erased unique ownership wrapper. More...
Included Headers
#include <memory>
Namespaces Index
| namespace | helios |
| namespace | core |
|
Core utilities shared across the helios engine. More... | |
| namespace | memory |
|
Low-level memory utilities for type-erased ownership. More... | |
Classes Index
| struct | ErasedUnique |
|
Type-erased unique ownership wrapper. More... | |
Description
Type-erased unique ownership wrapper.
File Listing
The file content with the documentation metadata removed is:
11export namespace helios::core::memory {
31 struct ErasedUnique {
46 ErasedUnique() = default;
58 explicit ErasedUnique(std::unique_ptr<T> p) noexcept
59 : ptr(p.release()),
60 destroy([](void* q) noexcept { delete static_cast<T*>(q); })
68 ErasedUnique(ErasedUnique&& obj) noexcept : ptr(obj.ptr), destroy(obj.destroy) {
80 ErasedUnique& operator=(ErasedUnique&& obj) noexcept {
82 reset();
93 ~ErasedUnique() { reset(); }
102 ptr = nullptr;
103 destroy = nullptr;
Generated via doxygen2docusaurus 2.0.0 by Doxygen 1.15.0.