From 4bbb8e395a2f6b55cfa4a2246fb0b76d4c2e41be Mon Sep 17 00:00:00 2001 From: _Redstone_c_ Date: Wed, 15 Feb 2023 23:41:05 +0800 Subject: [PATCH] feat(containers): add ENABLE_RANGE_BASED_FOR_LOOP_SUPPORT macro definition --- Redcraft.Utility/Source/Public/Containers/Array.h | 7 +------ Redcraft.Utility/Source/Public/Containers/Iterator.h | 6 ++++++ 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/Redcraft.Utility/Source/Public/Containers/Array.h b/Redcraft.Utility/Source/Public/Containers/Array.h index 43555f8..ef2f752 100644 --- a/Redcraft.Utility/Source/Public/Containers/Array.h +++ b/Redcraft.Utility/Source/Public/Containers/Array.h @@ -1210,12 +1210,7 @@ public: B = MoveTemp(Temp); } -public: // STL-like iterators to enable range-based for loop support, should not be directly used. - - NODISCARD FORCEINLINE constexpr Iterator begin() { return Begin(); } - NODISCARD FORCEINLINE constexpr ConstIterator begin() const { return Begin(); } - NODISCARD FORCEINLINE constexpr Iterator end() { return End(); } - NODISCARD FORCEINLINE constexpr ConstIterator end() const { return End(); } + ENABLE_RANGE_BASED_FOR_LOOP_SUPPORT private: diff --git a/Redcraft.Utility/Source/Public/Containers/Iterator.h b/Redcraft.Utility/Source/Public/Containers/Iterator.h index 515b9d3..cac6f55 100644 --- a/Redcraft.Utility/Source/Public/Containers/Iterator.h +++ b/Redcraft.Utility/Source/Public/Containers/Iterator.h @@ -449,6 +449,12 @@ FORCEINLINE constexpr decltype(auto) REnd(initializer_list Container) NAMESPACE_END(Iteration) +#define ENABLE_RANGE_BASED_FOR_LOOP_SUPPORT public: \ + NODISCARD FORCEINLINE constexpr decltype(auto) begin() { return Begin(); } \ + NODISCARD FORCEINLINE constexpr decltype(auto) begin() const { return Begin(); } \ + NODISCARD FORCEINLINE constexpr decltype(auto) end() { return End(); } \ + NODISCARD FORCEINLINE constexpr decltype(auto) end() const { return End(); } + NAMESPACE_MODULE_END(Utility) NAMESPACE_MODULE_END(Redcraft) NAMESPACE_REDCRAFT_END