aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@ost.ch>2025-07-14 20:21:26 +0000
committerFelix Morgner <felix.morgner@ost.ch>2025-07-14 20:21:26 +0000
commit23b75cc23b8bab97eb2803e5110641c0f04bfc80 (patch)
tree13eb1d15cf862ccb2e120e5a84b0b779065ef9fb
parentbe0d5d9453edb871393cd8ee5c83ad15f6ef8c9d (diff)
downloadteachos-23b75cc23b8bab97eb2803e5110641c0f04bfc80.tar.xz
teachos-23b75cc23b8bab97eb2803e5110641c0f04bfc80.zip
x86_64: remove forward_value_iterator
-rw-r--r--arch/x86_64/include/arch/stl/forward_value_iterator.hpp121
1 files changed, 0 insertions, 121 deletions
diff --git a/arch/x86_64/include/arch/stl/forward_value_iterator.hpp b/arch/x86_64/include/arch/stl/forward_value_iterator.hpp
deleted file mode 100644
index be3d8e6..0000000
--- a/arch/x86_64/include/arch/stl/forward_value_iterator.hpp
+++ /dev/null
@@ -1,121 +0,0 @@
-#ifndef TEACHOS_ARCH_X86_64_STL_FORWARD_VALUE_ITERATOR_HPP
-#define TEACHOS_ARCH_X86_64_STL_FORWARD_VALUE_ITERATOR_HPP
-
-#include <iterator>
-
-namespace teachos::arch::stl
-{
- /**
- * @brief Concept for a type to have a post and prefix increment operator, that returns the correct type.
- */
- template<typename T>
- concept Incrementable = requires(T t) {
- { ++t } -> std::same_as<T &>;
- { t++ } -> std::same_as<T>;
- };
-
- /**
- * @brief Iterable concept for the forward value iterator, meaning the type itself is incrementable and comparable.
- */
- template<typename T>
- concept Iterable = std::regular<T> && Incrementable<T>;
-
- /**
- * @brief Generic forward iterator for given template type. Allows to easily use this iterator
- * instance in algorithm calls.
- *
- * @note Allows any value that itself can be incremented until we have reached the end, does not interact with the
- * address of the value in any way.
- *
- * @tparam T Value the iterator contains.
- */
- template<Iterable T>
- struct forward_value_iterator
- {
- using iterator_category = std::forward_iterator_tag; ///< Iterator category of this type.
- using difference_type = std::ptrdiff_t; ///< Type when diving one instance of this iterator by another.
- using value_type = T; ///< Underlying value contained by this iterator.
- using const_reference_type =
- value_type const &; ///< Constant reference to value returned by dereference * operation.
- using const_pointer_type = value_type const *; ///< Constant pointer to value returned by arrow -> operation.
-
- /**
- * @brief Defaulted constructor.
- */
- forward_value_iterator() = default;
-
- /**
- * @brief Constructor.
- *
- * @param value Underlying value the iterator contains.
- */
- explicit forward_value_iterator(value_type value)
- : value(value)
- {
- // Nothing to do
- }
-
- /**
- * @brief Returns the initally given value.
- *
- * @return Reference to the value.
- */
- [[gnu::section(".stl_text")]]
- auto operator*() const -> const_reference_type
- {
- return value;
- }
-
- /**
- * @brief Gets pointer to the underlying value passed intially.
- *
- * @return Pointer to the underlying value passed intially.
- */
- [[gnu::section(".stl_text")]]
- auto operator->() const -> const_pointer_type
- {
- return &value;
- }
-
- /**
- * @brief Pre increment operator. Returns a reference to the changed value.
- *
- * @return Reference to the incremented underlying value.
- */
- [[gnu::section(".stl_text")]]
- auto operator++() -> forward_value_iterator &
- {
- ++value;
- return *this;
- }
-
- /**
- * @brief Post increment operator. Returns a copy of the value.
- *
- * @return Copy of the incremented underlying value.
- */
- [[gnu::section(".stl_text")]]
- auto operator++(int) -> forward_value_iterator
- {
- auto const old_value = *this;
- ++value;
- return old_value;
- }
-
- /**
- * @brief Defaulted comparsion operator. Simply compares the memory address of both iterators.
- *
- * @param other Other iterator to compare to.
- * @return Whether both iterators point to the same underlying address in memory.
- */
- [[gnu::section(".stl_text")]]
- auto operator==(forward_value_iterator const & other) const -> bool = default;
-
- private:
- value_type value =
- {}; ///< Underlying value the iterator is currently pointing too and should increment or decrement.
- };
-
-} // namespace teachos::arch::stl
-
-#endif // TEACHOS_ARCH_X86_64_STL_FORWARD_VALUE_ITERATOR_HPP