From 3209cd854e68558a87b578db5207a637655d96c0 Mon Sep 17 00:00:00 2001 From: skypjack Date: Tue, 24 Feb 2026 15:07:16 +0100 Subject: [PATCH] test: meta dereference const correctness for non-pointer non-pointer-like types --- test/entt/meta/meta_dereference.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/test/entt/meta/meta_dereference.cpp b/test/entt/meta/meta_dereference.cpp index dc536c3bd..37155bdec 100644 --- a/test/entt/meta/meta_dereference.cpp +++ b/test/entt/meta/meta_dereference.cpp @@ -236,6 +236,21 @@ TEST_F(MetaDereference, Optional) { ASSERT_EQ(*value, 3); } +TEST_F(MetaDereference, OptionalConstCorrectness) { + auto value = std::optional(0); + entt::meta_any any{entt::forward_as_meta(value)}; + + auto ref = any.as_ref(); + auto cref = std::as_const(any).as_ref(); + auto cderef = *std::as_const(any); + auto deref = *any; + + ASSERT_EQ((*ref).base().policy(), entt::any_policy::ref); + ASSERT_EQ((*cref).base().policy(), entt::any_policy::cref); + ASSERT_EQ(cderef.base().policy(), entt::any_policy::cref); + ASSERT_EQ(deref.base().policy(), entt::any_policy::ref); +} + TEST_F(MetaDereference, EmptyOptional) { auto value = std::optional(); entt::meta_any any{entt::forward_as_meta(value)};