meta: lazy_node -> node

This commit is contained in:
skypjack
2025-09-18 17:25:21 +02:00
parent 89af917748
commit 6153cdcbbe

View File

@@ -199,17 +199,17 @@ class meta_any {
ctx{other.ctx} {
if(storage || !other.storage) {
resolve = other.resolve;
lazy_node = other.lazy_node;
node = other.node;
vtable = other.vtable;
}
}
[[nodiscard]] const auto *fetch_node() const {
if((lazy_node == nullptr) && (resolve != nullptr)) {
lazy_node = &resolve(internal::meta_context::from(*ctx));
if((node == nullptr) && (resolve != nullptr)) {
node = &resolve(internal::meta_context::from(*ctx));
}
return lazy_node;
return node;
}
public:
@@ -300,7 +300,7 @@ public:
: storage{other.storage},
ctx{&area},
resolve{other.resolve},
lazy_node{(ctx == other.ctx) ? other.lazy_node : nullptr},
node{(ctx == other.ctx) ? other.node : nullptr},
vtable{other.vtable} {}
/**
@@ -312,7 +312,7 @@ public:
: storage{std::move(other.storage)},
ctx{&area},
resolve{std::exchange(other.resolve, nullptr)},
lazy_node{(ctx == other.ctx) ? std::exchange(other.lazy_node, nullptr) : nullptr},
node{(ctx == other.ctx) ? std::exchange(other.node, nullptr) : nullptr},
vtable{std::exchange(other.vtable, nullptr)} {}
/**
@@ -338,7 +338,7 @@ public:
storage = other.storage;
ctx = other.ctx;
resolve = other.resolve;
lazy_node = other.lazy_node;
node = other.node;
vtable = other.vtable;
}
@@ -359,7 +359,7 @@ public:
storage = std::move(other.storage);
ctx = other.ctx;
resolve = std::exchange(other.resolve, nullptr);
lazy_node = std::exchange(other.lazy_node, nullptr);
node = std::exchange(other.node, nullptr);
vtable = std::exchange(other.vtable, nullptr);
return *this;
}
@@ -518,7 +518,7 @@ public:
if(auto *overload = &internal::resolve<std::remove_cv_t<std::remove_reference_t<Type>>>; overload != resolve) {
resolve = overload;
lazy_node = nullptr;
node = nullptr;
vtable = &basic_vtable<std::remove_cv_t<std::remove_reference_t<Type>>>;
}
}
@@ -533,7 +533,7 @@ public:
void reset() {
storage.reset();
resolve = nullptr;
lazy_node = {};
node = {};
vtable = nullptr;
}
@@ -630,7 +630,7 @@ private:
any storage;
const meta_ctx *ctx{&locator<meta_ctx>::value_or()};
const internal::meta_type_node &(*resolve)(const internal::meta_context &) noexcept {};
mutable const internal::meta_type_node *lazy_node{};
mutable const internal::meta_type_node *node{};
vtable_type *vtable{};
};