diff options
| author | untodesu <kirill@untode.su> | 2025-06-28 01:59:49 +0500 |
|---|---|---|
| committer | untodesu <kirill@untode.su> | 2025-06-28 01:59:49 +0500 |
| commit | 61e5bcef2629e2d68b805a956a96fff264d4f74d (patch) | |
| tree | bca3a94bac79d34e3c0db57c77604f5a823ecbda /deps/include/entt/meta/range.hpp | |
| parent | 88c01588aa0830e219eaa62588839e4d1e2883ce (diff) | |
| download | voxelius-61e5bcef2629e2d68b805a956a96fff264d4f74d.tar.bz2 voxelius-61e5bcef2629e2d68b805a956a96fff264d4f74d.zip | |
Restructure dependencies and update to C++20
- Nuked static_assert from almost everywhere in the project
- Nuked binary dependency support. Might add one later though
- Separated dependency headers into a separate include subdirectory
- Grafted a thirdpartylegalnotices.txt generator from RITEG
- Pushed development snapshot version to 2126 (26th week of 2025)
Diffstat (limited to 'deps/include/entt/meta/range.hpp')
| -rw-r--r-- | deps/include/entt/meta/range.hpp | 143 |
1 files changed, 0 insertions, 143 deletions
diff --git a/deps/include/entt/meta/range.hpp b/deps/include/entt/meta/range.hpp deleted file mode 100644 index 96e4664..0000000 --- a/deps/include/entt/meta/range.hpp +++ /dev/null @@ -1,143 +0,0 @@ -#ifndef ENTT_META_RANGE_HPP
-#define ENTT_META_RANGE_HPP
-
-#include <cstddef>
-#include <iterator>
-#include <utility>
-#include "../core/fwd.hpp"
-#include "../core/iterator.hpp"
-#include "context.hpp"
-
-namespace entt {
-
-/*! @cond TURN_OFF_DOXYGEN */
-namespace internal {
-
-template<typename Type, typename It>
-struct meta_range_iterator final {
- using value_type = std::pair<id_type, Type>;
- using pointer = input_iterator_pointer<value_type>;
- using reference = value_type;
- using difference_type = std::ptrdiff_t;
- using iterator_category = std::input_iterator_tag;
- using iterator_concept = std::random_access_iterator_tag;
-
- constexpr meta_range_iterator() noexcept
- : it{},
- ctx{} {}
-
- constexpr meta_range_iterator(const meta_ctx &area, const It iter) noexcept
- : it{iter},
- ctx{&area} {}
-
- constexpr meta_range_iterator &operator++() noexcept {
- return ++it, *this;
- }
-
- constexpr meta_range_iterator operator++(int) noexcept {
- meta_range_iterator orig = *this;
- return ++(*this), orig;
- }
-
- constexpr meta_range_iterator &operator--() noexcept {
- return --it, *this;
- }
-
- constexpr meta_range_iterator operator--(int) noexcept {
- meta_range_iterator orig = *this;
- return operator--(), orig;
- }
-
- constexpr meta_range_iterator &operator+=(const difference_type value) noexcept {
- it += value;
- return *this;
- }
-
- constexpr meta_range_iterator operator+(const difference_type value) const noexcept {
- meta_range_iterator copy = *this;
- return (copy += value);
- }
-
- constexpr meta_range_iterator &operator-=(const difference_type value) noexcept {
- return (*this += -value);
- }
-
- constexpr meta_range_iterator operator-(const difference_type value) const noexcept {
- return (*this + -value);
- }
-
- [[nodiscard]] constexpr reference operator[](const difference_type value) const noexcept {
- return {it[value].first, Type{*ctx, it[value].second}};
- }
-
- [[nodiscard]] constexpr pointer operator->() const noexcept {
- return operator*();
- }
-
- [[nodiscard]] constexpr reference operator*() const noexcept {
- return operator[](0);
- }
-
- template<typename... Args>
- friend constexpr std::ptrdiff_t operator-(const meta_range_iterator<Args...> &, const meta_range_iterator<Args...> &) noexcept;
-
- template<typename... Args>
- friend constexpr bool operator==(const meta_range_iterator<Args...> &, const meta_range_iterator<Args...> &) noexcept;
-
- template<typename... Args>
- friend constexpr bool operator<(const meta_range_iterator<Args...> &, const meta_range_iterator<Args...> &) noexcept;
-
-private:
- It it;
- const meta_ctx *ctx;
-};
-
-template<typename... Args>
-[[nodiscard]] constexpr std::ptrdiff_t operator-(const meta_range_iterator<Args...> &lhs, const meta_range_iterator<Args...> &rhs) noexcept {
- return lhs.it - rhs.it;
-}
-
-template<typename... Args>
-[[nodiscard]] constexpr bool operator==(const meta_range_iterator<Args...> &lhs, const meta_range_iterator<Args...> &rhs) noexcept {
- return lhs.it == rhs.it;
-}
-
-template<typename... Args>
-[[nodiscard]] constexpr bool operator!=(const meta_range_iterator<Args...> &lhs, const meta_range_iterator<Args...> &rhs) noexcept {
- return !(lhs == rhs);
-}
-
-template<typename... Args>
-[[nodiscard]] constexpr bool operator<(const meta_range_iterator<Args...> &lhs, const meta_range_iterator<Args...> &rhs) noexcept {
- return lhs.it < rhs.it;
-}
-
-template<typename... Args>
-[[nodiscard]] constexpr bool operator>(const meta_range_iterator<Args...> &lhs, const meta_range_iterator<Args...> &rhs) noexcept {
- return rhs < lhs;
-}
-
-template<typename... Args>
-[[nodiscard]] constexpr bool operator<=(const meta_range_iterator<Args...> &lhs, const meta_range_iterator<Args...> &rhs) noexcept {
- return !(lhs > rhs);
-}
-
-template<typename... Args>
-[[nodiscard]] constexpr bool operator>=(const meta_range_iterator<Args...> &lhs, const meta_range_iterator<Args...> &rhs) noexcept {
- return !(lhs < rhs);
-}
-
-} // namespace internal
-/*! @endcond */
-
-/**
- * @brief Iterable range to use to iterate all types of meta objects.
- * @tparam Type Type of meta objects returned.
- * @tparam It Type of forward iterator.
- */
-template<typename Type, typename It>
-using meta_range = iterable_adaptor<internal::meta_range_iterator<Type, It>>;
-
-} // namespace entt
-
-#endif
|
