|
|
@@ -387,7 +387,7 @@ public:
|
|
|
if(node) {
|
|
|
if(const auto info = type_id<Type>(); node->info == info) {
|
|
|
return any_cast<Type>(&storage);
|
|
|
- } else if(const auto *base = internal::meta_visit<&internal::meta_type_node::base>([info](const auto *curr) { return curr->type()->info == info; }, node); base) {
|
|
|
+ } else if(const auto *base = internal::meta_visit<&internal::meta_type_node::base>(info, node); base) {
|
|
|
return static_cast<const Type *>(base->cast(storage.data()));
|
|
|
}
|
|
|
}
|
|
|
@@ -401,7 +401,7 @@ public:
|
|
|
if(node) {
|
|
|
if(const auto info = type_id<Type>(); node->info == info) {
|
|
|
return any_cast<Type>(&storage);
|
|
|
- } else if(const auto *base = internal::meta_visit<&internal::meta_type_node::base>([info](const auto *curr) { return curr->type()->info == info; }, node); base) {
|
|
|
+ } else if(const auto *base = internal::meta_visit<&internal::meta_type_node::base>(info, node); base) {
|
|
|
return static_cast<Type *>(const_cast<constness_as_t<void, Type> *>(base->cast(static_cast<constness_as_t<any, Type> &>(storage).data())));
|
|
|
}
|
|
|
}
|
|
|
@@ -447,7 +447,7 @@ public:
|
|
|
if(try_cast<std::remove_reference_t<Type>>() != nullptr) {
|
|
|
return as_ref();
|
|
|
} else if(node) {
|
|
|
- if(const auto * const conv = internal::meta_visit<&internal::meta_type_node::conv>([info = type_id<Type>()](const auto *curr) { return curr->type()->info == info; }, node); conv) {
|
|
|
+ if(const auto * const conv = internal::meta_visit<&internal::meta_type_node::conv>(type_id<Type>(), node); conv) {
|
|
|
return conv->conv(storage.data());
|
|
|
}
|
|
|
}
|
|
|
@@ -466,7 +466,7 @@ public:
|
|
|
if(try_cast<std::remove_reference_t<const Type>>() != nullptr) {
|
|
|
return true;
|
|
|
} else if(node) {
|
|
|
- if(const auto * const conv = internal::meta_visit<&internal::meta_type_node::conv>([info = type_id<Type>()](const auto *curr) { return curr->type()->info == info; }, node); conv) {
|
|
|
+ if(const auto * const conv = internal::meta_visit<&internal::meta_type_node::conv>(type_id<Type>(), node); conv) {
|
|
|
*this = conv->conv(std::as_const(storage).data());
|
|
|
return true;
|
|
|
}
|