Kaynağa Gözat

meta: add cbegin/cend to meta_range

Michele Caini 4 yıl önce
ebeveyn
işleme
33ccb71526
1 değiştirilmiş dosya ile 14 ekleme ve 2 silme
  1. 14 2
      src/entt/meta/range.hpp

+ 14 - 2
src/entt/meta/range.hpp

@@ -60,6 +60,8 @@ public:
     using node_type = Node;
     using node_type = Node;
     /*! @brief Input iterator type. */
     /*! @brief Input iterator type. */
     using iterator = range_iterator;
     using iterator = range_iterator;
+    /*! @brief Constant input iterator type. */
+    using const_iterator = iterator;
 
 
     /*! @brief Default constructor. */
     /*! @brief Default constructor. */
     meta_range() ENTT_NOEXCEPT = default;
     meta_range() ENTT_NOEXCEPT = default;
@@ -76,19 +78,29 @@ public:
      * @brief Returns an iterator to the beginning.
      * @brief Returns an iterator to the beginning.
      * @return An iterator to the first meta object of the range.
      * @return An iterator to the first meta object of the range.
      */
      */
-    [[nodiscard]] iterator begin() const ENTT_NOEXCEPT {
+    [[nodiscard]] const_iterator cbegin() const ENTT_NOEXCEPT {
         return iterator{node};
         return iterator{node};
     }
     }
 
 
+    /*! @copydoc cbegin */
+    [[nodiscard]] iterator begin() const ENTT_NOEXCEPT {
+        return cbegin();
+    }
+
     /**
     /**
      * @brief Returns an iterator to the end.
      * @brief Returns an iterator to the end.
      * @return An iterator to the element following the last meta object of the
      * @return An iterator to the element following the last meta object of the
      * range.
      * range.
      */
      */
-    [[nodiscard]] iterator end() const ENTT_NOEXCEPT {
+    [[nodiscard]] const_iterator cend() const ENTT_NOEXCEPT {
         return iterator{};
         return iterator{};
     }
     }
 
 
+    /*! @copydoc cend */
+    [[nodiscard]] iterator end() const ENTT_NOEXCEPT {
+        return cend();
+    }
+
 private:
 private:
     node_type *node{nullptr};
     node_type *node{nullptr};
 };
 };