view/group: updated range iterators (thanks to @Lawrencemm for pointing this out)

This commit is contained in:
Michele Caini
2020-07-10 15:37:43 +02:00
parent 0ca5ea0150
commit c12c32d26e
2 changed files with 18 additions and 8 deletions

View File

@@ -98,10 +98,13 @@ class basic_group<Entity, exclude_t<Exclude...>, get_t<Get...>> {
using difference_type = std::ptrdiff_t;
using value_type = decltype(std::tuple_cat(
std::declval<std::tuple<Entity>>(),
std::declval<std::conditional_t<ENTT_IS_EMPTY(Get), std::tuple<>, std::tuple<Get &>>>()...
std::declval<std::conditional_t<ENTT_IS_EMPTY(Get), std::tuple<>, std::tuple<Get>>>()...
));
using pointer = void;
using reference = value_type;
using reference = decltype(std::tuple_cat(
std::declval<std::tuple<Entity>>(),
std::declval<std::conditional_t<ENTT_IS_EMPTY(Get), std::tuple<>, std::tuple<Get &>>>()...
));
using iterator_category = std::input_iterator_tag;
range_iterator() ENTT_NOEXCEPT = default;
@@ -610,12 +613,16 @@ class basic_group<Entity, exclude_t<Exclude...>, get_t<Get...>, Owned...> {
public:
using difference_type = std::ptrdiff_t;
using value_type = decltype(std::tuple_cat(
std::declval<std::tuple<Entity>>(),
std::declval<std::conditional_t<ENTT_IS_EMPTY(Owned), std::tuple<>, std::tuple<Owned>>>()...,
std::declval<std::conditional_t<ENTT_IS_EMPTY(Get), std::tuple<>, std::tuple<Get>>>()...
));
using pointer = void;
using reference = decltype(std::tuple_cat(
std::declval<std::tuple<Entity>>(),
std::declval<std::conditional_t<ENTT_IS_EMPTY(Owned), std::tuple<>, std::tuple<Owned &>>>()...,
std::declval<std::conditional_t<ENTT_IS_EMPTY(Get), std::tuple<>, std::tuple<Get &>>>()...
));
using pointer = void;
using reference = value_type;
using iterator_category = std::input_iterator_tag;
range_iterator() ENTT_NOEXCEPT = default;

View File

@@ -175,10 +175,13 @@ class basic_view<Entity, exclude_t<Exclude...>, Component...> {
using difference_type = std::ptrdiff_t;
using value_type = decltype(std::tuple_cat(
std::declval<std::tuple<Entity>>(),
std::declval<std::conditional_t<ENTT_IS_EMPTY(Component), std::tuple<>, std::tuple<Component &>>>()...
std::declval<std::conditional_t<ENTT_IS_EMPTY(Component), std::tuple<>, std::tuple<Component>>>()...
));
using pointer = void;
using reference = value_type;
using reference = decltype(std::tuple_cat(
std::declval<std::tuple<Entity>>(),
std::declval<std::conditional_t<ENTT_IS_EMPTY(Component), std::tuple<>, std::tuple<Component &>>>()...
));
using iterator_category = std::input_iterator_tag;
range_iterator() ENTT_NOEXCEPT = default;
@@ -645,9 +648,9 @@ class basic_view<Entity, exclude_t<>, Component> {
public:
using difference_type = std::ptrdiff_t;
using value_type = std::conditional_t<ENTT_IS_EMPTY(Component), std::tuple<Entity>, std::tuple<Entity, Component &>>;
using value_type = std::conditional_t<ENTT_IS_EMPTY(Component), std::tuple<Entity>, std::tuple<Entity, Component>>;
using pointer = void;
using reference = value_type;
using reference = std::conditional_t<ENTT_IS_EMPTY(Component), std::tuple<Entity>, std::tuple<Entity, Component &>>;
using iterator_category = std::input_iterator_tag;
range_iterator() ENTT_NOEXCEPT = default;