| } | } | ||||
| const Deleter& get_deleter() const noexcept | |||||
| { | |||||
| return m_deleter; | |||||
| } | |||||
| unique_resource_t& operator=(unique_resource_t&& other) noexcept | unique_resource_t& operator=(unique_resource_t&& other) noexcept | ||||
| { | { | ||||
| invoke(invoke_it::once); | invoke(invoke_it::once); |
| REQUIRE(ref == 3); | REQUIRE(ref == 3); | ||||
| } | } | ||||
| // TODO: conditional access functions | |||||
| TEST_CASE("deleter access", "[UniqueResource]") | |||||
| { | |||||
| std::size_t value{0}; | |||||
| auto guard = sr::unique_resource(Handle{3}, [&value](auto v) { value = v; }); | |||||
| REQUIRE(value == 0); | |||||
| guard.get_deleter()(6); | |||||
| REQUIRE(value == 6); | |||||
| } |