xo-alloc / xo-refcnt: feature flags for easy tests.

This commit is contained in:
Roland Conybeare 2025-11-19 12:38:54 -05:00
commit cfca87ee44
2 changed files with 10 additions and 0 deletions

View file

@ -39,6 +39,11 @@ namespace xo {
template <typename S>
gc_ptr(const gc_ptr<S> & x) : ptr_{x.ptr()} {}
/** convenience for static asserts **/
static constexpr bool is_gc_ptr = true;
/** see also: xo/refcnt/Refcounted.hpp **/
static constexpr bool is_rc_ptr = false;
static bool is_eq(gc_ptr x1, gc_ptr x2) {
std::uintptr_t u1 = reinterpret_cast<std::uintptr_t>(x1.ptr());
std::uintptr_t u2 = reinterpret_cast<std::uintptr_t>(x2.ptr());

View file

@ -80,6 +80,11 @@ namespace xo {
x.ptr_ = nullptr;
}
/** convenience tests for static_assert() **/
static constexpr bool is_rc_ptr = true;
/** see also: xo/alloc/Object.hpp **/
static constexpr bool is_gc_ptr = false;
/* aliasing ctor. see ctor (8) here:
* [[https://en.cppreference.com/w/cpp/memory/shared_ptr/shared_ptr]]
* and this dicsussion: