refactor(furvm): improve the handle system

Absolute slop

Refs: #12
This commit is contained in:
2026-06-18 23:58:37 +02:00
parent e9b38e95a2
commit ec2c81fc56
13 changed files with 641 additions and 617 deletions
+24
View File
@@ -0,0 +1,24 @@
#ifndef FURVM_DETAIL_HANDLE_HPP
#define FURVM_DETAIL_HANDLE_HPP
#include <type_traits>
namespace furvm {
namespace detail {
template <typename Header, typename = void>
struct header_has_refcount : std::false_type {};
template <typename Header>
struct header_has_refcount<Header,
std::void_t<decltype(std::declval<Header&>().acquire()),
decltype(std::declval<Header&>().release()),
decltype(std::declval<Header&>().reference_count())>> : std::true_type {};
template <typename Header>
static constexpr auto header_has_refcount_v = header_has_refcount<Header>::value;
} // namespace detail
} // namespace furvm
#endif // FURVM_DETAIL_HANDLE_HPP