test: meta dereference const correctness for non-pointer non-pointer-like types
This commit is contained in:
@@ -236,6 +236,21 @@ TEST_F(MetaDereference, Optional) {
|
||||
ASSERT_EQ(*value, 3);
|
||||
}
|
||||
|
||||
TEST_F(MetaDereference, OptionalConstCorrectness) {
|
||||
auto value = std::optional<int>(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<int>();
|
||||
entt::meta_any any{entt::forward_as_meta(value)};
|
||||
|
||||
Reference in New Issue
Block a user