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);
|
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) {
|
TEST_F(MetaDereference, EmptyOptional) {
|
||||||
auto value = std::optional<int>();
|
auto value = std::optional<int>();
|
||||||
entt::meta_any any{entt::forward_as_meta(value)};
|
entt::meta_any any{entt::forward_as_meta(value)};
|
||||||
|
|||||||
Reference in New Issue
Block a user