|
@@ -125,19 +125,19 @@ class basic_group<Entity, exclude_t<Exclude...>, get_t<Get...>> final {
|
|
|
using reverse_iterator = iterable_group_iterator<typename basic_sparse_set<Entity>::reverse_iterator>;
|
|
using reverse_iterator = iterable_group_iterator<typename basic_sparse_set<Entity>::reverse_iterator>;
|
|
|
|
|
|
|
|
[[nodiscard]] iterator begin() const ENTT_NOEXCEPT {
|
|
[[nodiscard]] iterator begin() const ENTT_NOEXCEPT {
|
|
|
- return iterator{group.begin(), group};
|
|
|
|
|
|
|
+ return { group.begin(), group };
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
[[nodiscard]] iterator end() const ENTT_NOEXCEPT {
|
|
[[nodiscard]] iterator end() const ENTT_NOEXCEPT {
|
|
|
- return iterator{group.end(), group};
|
|
|
|
|
|
|
+ return { group.end(), group };
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
[[nodiscard]] reverse_iterator rbegin() const ENTT_NOEXCEPT {
|
|
[[nodiscard]] reverse_iterator rbegin() const ENTT_NOEXCEPT {
|
|
|
- return reverse_iterator{group.rbegin(), group};
|
|
|
|
|
|
|
+ return { group.rbegin(), group };
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
[[nodiscard]] reverse_iterator rend() const ENTT_NOEXCEPT {
|
|
[[nodiscard]] reverse_iterator rend() const ENTT_NOEXCEPT {
|
|
|
- return reverse_iterator{group.rend(), group};
|
|
|
|
|
|
|
+ return { group.rend(), group };
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private:
|
|
private:
|
|
@@ -276,10 +276,6 @@ public:
|
|
|
* The returned iterator points to the first entity of the group. If the
|
|
* The returned iterator points to the first entity of the group. If the
|
|
|
* group is empty, the returned iterator will be equal to `end()`.
|
|
* group is empty, the returned iterator will be equal to `end()`.
|
|
|
*
|
|
*
|
|
|
- * @note
|
|
|
|
|
- * Iterators stay true to the order imposed to the underlying data
|
|
|
|
|
- * structures.
|
|
|
|
|
- *
|
|
|
|
|
* @return An iterator to the first entity of the group.
|
|
* @return An iterator to the first entity of the group.
|
|
|
*/
|
|
*/
|
|
|
[[nodiscard]] iterator begin() const ENTT_NOEXCEPT {
|
|
[[nodiscard]] iterator begin() const ENTT_NOEXCEPT {
|
|
@@ -293,10 +289,6 @@ public:
|
|
|
* the group. Attempting to dereference the returned iterator results in
|
|
* the group. Attempting to dereference the returned iterator results in
|
|
|
* undefined behavior.
|
|
* undefined behavior.
|
|
|
*
|
|
*
|
|
|
- * @note
|
|
|
|
|
- * Iterators stay true to the order imposed to the underlying data
|
|
|
|
|
- * structures.
|
|
|
|
|
- *
|
|
|
|
|
* @return An iterator to the entity following the last entity of the
|
|
* @return An iterator to the entity following the last entity of the
|
|
|
* group.
|
|
* group.
|
|
|
*/
|
|
*/
|
|
@@ -310,10 +302,6 @@ public:
|
|
|
* The returned iterator points to the first entity of the reversed group.
|
|
* The returned iterator points to the first entity of the reversed group.
|
|
|
* If the group is empty, the returned iterator will be equal to `rend()`.
|
|
* If the group is empty, the returned iterator will be equal to `rend()`.
|
|
|
*
|
|
*
|
|
|
- * @note
|
|
|
|
|
- * Iterators stay true to the order imposed to the underlying data
|
|
|
|
|
- * structures.
|
|
|
|
|
- *
|
|
|
|
|
* @return An iterator to the first entity of the reversed group.
|
|
* @return An iterator to the first entity of the reversed group.
|
|
|
*/
|
|
*/
|
|
|
[[nodiscard]] reverse_iterator rbegin() const ENTT_NOEXCEPT {
|
|
[[nodiscard]] reverse_iterator rbegin() const ENTT_NOEXCEPT {
|
|
@@ -328,10 +316,6 @@ public:
|
|
|
* the reversed group. Attempting to dereference the returned iterator
|
|
* the reversed group. Attempting to dereference the returned iterator
|
|
|
* results in undefined behavior.
|
|
* results in undefined behavior.
|
|
|
*
|
|
*
|
|
|
- * @note
|
|
|
|
|
- * Iterators stay true to the order imposed to the underlying data
|
|
|
|
|
- * structures.
|
|
|
|
|
- *
|
|
|
|
|
* @return An iterator to the entity following the last entity of the
|
|
* @return An iterator to the entity following the last entity of the
|
|
|
* reversed group.
|
|
* reversed group.
|
|
|
*/
|
|
*/
|
|
@@ -674,28 +658,28 @@ class basic_group<Entity, exclude_t<Exclude...>, get_t<Get...>, Owned...> final
|
|
|
>;
|
|
>;
|
|
|
|
|
|
|
|
[[nodiscard]] iterator begin() const ENTT_NOEXCEPT {
|
|
[[nodiscard]] iterator begin() const ENTT_NOEXCEPT {
|
|
|
- return iterator{
|
|
|
|
|
|
|
+ return {
|
|
|
std::get<0>(pools)->basic_sparse_set<Entity>::end() - *length,
|
|
std::get<0>(pools)->basic_sparse_set<Entity>::end() - *length,
|
|
|
std::make_tuple((std::get<pool_type<Owned> *>(pools)->end() - *length)..., std::get<pool_type<Get> *>(pools)...)
|
|
std::make_tuple((std::get<pool_type<Owned> *>(pools)->end() - *length)..., std::get<pool_type<Get> *>(pools)...)
|
|
|
};
|
|
};
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
[[nodiscard]] iterator end() const ENTT_NOEXCEPT {
|
|
[[nodiscard]] iterator end() const ENTT_NOEXCEPT {
|
|
|
- return iterator{
|
|
|
|
|
|
|
+ return {
|
|
|
std::get<0>(pools)->basic_sparse_set<Entity>::end(),
|
|
std::get<0>(pools)->basic_sparse_set<Entity>::end(),
|
|
|
std::make_tuple((std::get<pool_type<Owned> *>(pools)->end())..., std::get<pool_type<Get> *>(pools)...)
|
|
std::make_tuple((std::get<pool_type<Owned> *>(pools)->end())..., std::get<pool_type<Get> *>(pools)...)
|
|
|
};
|
|
};
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
[[nodiscard]] reverse_iterator rbegin() const ENTT_NOEXCEPT {
|
|
[[nodiscard]] reverse_iterator rbegin() const ENTT_NOEXCEPT {
|
|
|
- return reverse_iterator{
|
|
|
|
|
|
|
+ return {
|
|
|
std::get<0>(pools)->basic_sparse_set<Entity>::rbegin(),
|
|
std::get<0>(pools)->basic_sparse_set<Entity>::rbegin(),
|
|
|
std::make_tuple((std::get<pool_type<Owned> *>(pools)->rbegin())..., std::get<pool_type<Get> *>(pools)...)
|
|
std::make_tuple((std::get<pool_type<Owned> *>(pools)->rbegin())..., std::get<pool_type<Get> *>(pools)...)
|
|
|
};
|
|
};
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
[[nodiscard]] reverse_iterator rend() const ENTT_NOEXCEPT {
|
|
[[nodiscard]] reverse_iterator rend() const ENTT_NOEXCEPT {
|
|
|
- return reverse_iterator{
|
|
|
|
|
|
|
+ return {
|
|
|
std::get<0>(pools)->basic_sparse_set<Entity>::rbegin() + *length,
|
|
std::get<0>(pools)->basic_sparse_set<Entity>::rbegin() + *length,
|
|
|
std::make_tuple((std::get<pool_type<Owned> *>(pools)->rbegin() + *length)..., std::get<pool_type<Get> *>(pools)...)
|
|
std::make_tuple((std::get<pool_type<Owned> *>(pools)->rbegin() + *length)..., std::get<pool_type<Get> *>(pools)...)
|
|
|
};
|
|
};
|
|
@@ -836,10 +820,6 @@ public:
|
|
|
* The returned iterator points to the first entity of the group. If the
|
|
* The returned iterator points to the first entity of the group. If the
|
|
|
* group is empty, the returned iterator will be equal to `end()`.
|
|
* group is empty, the returned iterator will be equal to `end()`.
|
|
|
*
|
|
*
|
|
|
- * @note
|
|
|
|
|
- * Iterators stay true to the order imposed to the underlying data
|
|
|
|
|
- * structures.
|
|
|
|
|
- *
|
|
|
|
|
* @return An iterator to the first entity of the group.
|
|
* @return An iterator to the first entity of the group.
|
|
|
*/
|
|
*/
|
|
|
[[nodiscard]] iterator begin() const ENTT_NOEXCEPT {
|
|
[[nodiscard]] iterator begin() const ENTT_NOEXCEPT {
|
|
@@ -853,10 +833,6 @@ public:
|
|
|
* the group. Attempting to dereference the returned iterator results in
|
|
* the group. Attempting to dereference the returned iterator results in
|
|
|
* undefined behavior.
|
|
* undefined behavior.
|
|
|
*
|
|
*
|
|
|
- * @note
|
|
|
|
|
- * Iterators stay true to the order imposed to the underlying data
|
|
|
|
|
- * structures.
|
|
|
|
|
- *
|
|
|
|
|
* @return An iterator to the entity following the last entity of the
|
|
* @return An iterator to the entity following the last entity of the
|
|
|
* group.
|
|
* group.
|
|
|
*/
|
|
*/
|
|
@@ -870,10 +846,6 @@ public:
|
|
|
* The returned iterator points to the first entity of the reversed group.
|
|
* The returned iterator points to the first entity of the reversed group.
|
|
|
* If the group is empty, the returned iterator will be equal to `rend()`.
|
|
* If the group is empty, the returned iterator will be equal to `rend()`.
|
|
|
*
|
|
*
|
|
|
- * @note
|
|
|
|
|
- * Iterators stay true to the order imposed to the underlying data
|
|
|
|
|
- * structures.
|
|
|
|
|
- *
|
|
|
|
|
* @return An iterator to the first entity of the reversed group.
|
|
* @return An iterator to the first entity of the reversed group.
|
|
|
*/
|
|
*/
|
|
|
[[nodiscard]] reverse_iterator rbegin() const ENTT_NOEXCEPT {
|
|
[[nodiscard]] reverse_iterator rbegin() const ENTT_NOEXCEPT {
|
|
@@ -888,10 +860,6 @@ public:
|
|
|
* the reversed group. Attempting to dereference the returned iterator
|
|
* the reversed group. Attempting to dereference the returned iterator
|
|
|
* results in undefined behavior.
|
|
* results in undefined behavior.
|
|
|
*
|
|
*
|
|
|
- * @note
|
|
|
|
|
- * Iterators stay true to the order imposed to the underlying data
|
|
|
|
|
- * structures.
|
|
|
|
|
- *
|
|
|
|
|
* @return An iterator to the entity following the last entity of the
|
|
* @return An iterator to the entity following the last entity of the
|
|
|
* reversed group.
|
|
* reversed group.
|
|
|
*/
|
|
*/
|