|
|
@@ -295,7 +295,7 @@ public:
|
|
|
* @return An opaque pointer the contained instance, if any.
|
|
|
*/
|
|
|
[[nodiscard]] void *data() noexcept {
|
|
|
- return (!vtable || mode == policy::cref) ? nullptr : const_cast<void *>(vtable(operation::get, *this, nullptr));
|
|
|
+ return mode == policy::cref ? nullptr : const_cast<void *>(std::as_const(*this).data());
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -304,7 +304,7 @@ public:
|
|
|
* @return An opaque pointer the contained instance, if any.
|
|
|
*/
|
|
|
[[nodiscard]] void *data(const type_info &req) noexcept {
|
|
|
- return *info == req ? data() : nullptr;
|
|
|
+ return mode == policy::cref ? nullptr : const_cast<void *>(std::as_const(*this).data(req));
|
|
|
}
|
|
|
|
|
|
/**
|