[ox/std] Add another redundant check to suppress GCC's pedantry
This commit is contained in:
		
							
								
								
									
										6
									
								
								deps/ox/src/ox/std/vector.hpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								deps/ox/src/ox/std/vector.hpp
									
									
									
									
										vendored
									
									
								
							| @@ -42,11 +42,13 @@ struct VectorAllocator { | |||||||
| 		} | 		} | ||||||
|  |  | ||||||
| 		constexpr void moveConstructItemsFrom(T **items, VectorAllocator &src, const std::size_t count, const std::size_t cap) noexcept { | 		constexpr void moveConstructItemsFrom(T **items, VectorAllocator &src, const std::size_t count, const std::size_t cap) noexcept { | ||||||
| 			if (cap <= Size) { | 			// this totally idiotic redundant check (&& count <= Size) is required to address a bug in devkitARM, | ||||||
|  | 			// try removing it later | ||||||
|  | 			if (cap <= Size && count <= Size) { | ||||||
| 				const auto dstItems = reinterpret_cast<T*>(m_data); | 				const auto dstItems = reinterpret_cast<T*>(m_data); | ||||||
| 				const auto srcItems = reinterpret_cast<T*>(src.m_data); | 				const auto srcItems = reinterpret_cast<T*>(src.m_data); | ||||||
| 				for (auto i = 0u; i < count; ++i) { | 				for (auto i = 0u; i < count; ++i) { | ||||||
| 					new (&dstItems[i]) T(std::move(srcItems[i])); | 					std::construct_at<T>(&dstItems[i], std::move(srcItems[i])); | ||||||
| 				} | 				} | ||||||
| 				*items = reinterpret_cast<T*>(m_data); | 				*items = reinterpret_cast<T*>(m_data); | ||||||
| 			} | 			} | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user