Просмотр исходного кода

meta: better support to rvalue references for forward_as_meta

Michele Caini 3 лет назад
Родитель
Сommit
4b10981d75
2 измененных файлов с 2 добавлено и 2 удалено
  1. 1 1
      src/entt/meta/meta.hpp
  2. 1 1
      test/entt/meta/meta_any.cpp

+ 1 - 1
src/entt/meta/meta.hpp

@@ -564,7 +564,7 @@ meta_any make_meta(Args &&...args) {
  */
 template<typename Type>
 meta_any forward_as_meta(Type &&value) {
-    return meta_any{std::in_place_type<std::conditional_t<std::is_rvalue_reference_v<Type>, std::decay_t<Type>, Type>>, std::forward<Type>(value)};
+    return meta_any{std::in_place_type<Type>, std::forward<Type>(value)};
 }
 
 /**

+ 1 - 1
test/entt/meta/meta_any.cpp

@@ -1365,9 +1365,9 @@ TEST_F(MetaAny, MakeMeta) {
 
 TEST_F(MetaAny, ForwardAsMeta) {
     int value = 42;
-    auto any = entt::forward_as_meta(std::move(value));
     auto ref = entt::forward_as_meta(value);
     auto cref = entt::forward_as_meta(std::as_const(value));
+    auto any = entt::forward_as_meta(std::move(value));
 
     ASSERT_TRUE(any);
     ASSERT_TRUE(ref);