Explorar o código

view: updated value_type for view_proxy

Michele Caini %!s(int64=5) %!d(string=hai) anos
pai
achega
ed668d5144
Modificáronse 1 ficheiros con 4 adicións e 7 borrados
  1. 4 7
      src/entt/entity/view.hpp

+ 4 - 7
src/entt/entity/view.hpp

@@ -169,14 +169,11 @@ class basic_view<Entity, exclude_t<Exclude...>, Component...> {
         public:
             using difference_type = std::ptrdiff_t;
             using value_type = decltype(std::tuple_cat(
-                std::declval<std::tuple<Entity>>(),
-                std::declval<std::conditional_t<is_eto_eligible_v<Component>, std::tuple<>, std::tuple<Component>>>()...
-            ));
-            using pointer = void;
-            using reference = decltype(std::tuple_cat(
                 std::declval<std::tuple<Entity>>(),
                 std::declval<std::conditional_t<is_eto_eligible_v<Component>, std::tuple<>, std::tuple<Component &>>>()...
             ));
+            using pointer = void;
+            using reference = value_type;
             using iterator_category = std::input_iterator_tag;
 
             proxy_iterator & operator++() ENTT_NOEXCEPT {
@@ -756,9 +753,9 @@ class basic_view<Entity, exclude_t<>, Component> {
 
         public:
             using difference_type = std::ptrdiff_t;
-            using value_type = std::conditional_t<is_eto_eligible_v<Component>, std::tuple<Entity>, std::tuple<Entity, Component>>;
+            using value_type = std::conditional_t<is_eto_eligible_v<Component>, std::tuple<Entity>, std::tuple<Entity, Component &>>;
             using pointer = void;
-            using reference = std::conditional_t<is_eto_eligible_v<Component>, std::tuple<Entity>, std::tuple<Entity, Component &>>;
+            using reference = value_type;
             using iterator_category = std::input_iterator_tag;
 
             proxy_iterator & operator++() ENTT_NOEXCEPT {