This commit is contained in:
		
							
								
								
									
										13
									
								
								deps/ox/src/ox/std/vector.hpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										13
									
								
								deps/ox/src/ox/std/vector.hpp
									
									
									
									
										vendored
									
									
								
							| @@ -311,6 +311,8 @@ class Vector: detail::VectorAllocator<T, Allocator, SmallVectorSize> { | |||||||
| 		 */ | 		 */ | ||||||
| 		constexpr Error unordered_erase(std::size_t pos) noexcept(useNoexcept); | 		constexpr Error unordered_erase(std::size_t pos) noexcept(useNoexcept); | ||||||
|  |  | ||||||
|  | 		constexpr Error remove(T const &val); | ||||||
|  |  | ||||||
| 		constexpr void reserve(std::size_t cap) noexcept(useNoexcept); | 		constexpr void reserve(std::size_t cap) noexcept(useNoexcept); | ||||||
|  |  | ||||||
| 		constexpr void shrink_to_fit() noexcept(useNoexcept); | 		constexpr void shrink_to_fit() noexcept(useNoexcept); | ||||||
| @@ -659,6 +661,17 @@ constexpr Error Vector<T, SmallVectorSize, Allocator>::unordered_erase(std::size | |||||||
| 	return ox::Error(0); | 	return ox::Error(0); | ||||||
| } | } | ||||||
|  |  | ||||||
|  | template<typename T, std::size_t SmallVectorSize, typename Allocator> | ||||||
|  | constexpr ox::Error Vector<T, SmallVectorSize, Allocator>::remove(T const &val) { | ||||||
|  | 	for (size_t i{}; auto const &v : *this) { | ||||||
|  | 		if (v == val) { | ||||||
|  | 			return erase(i).error; | ||||||
|  | 		} | ||||||
|  | 		++i; | ||||||
|  | 	} | ||||||
|  | 	return ox::Error{1, "element not found"}; | ||||||
|  | } | ||||||
|  |  | ||||||
| template<typename T, std::size_t SmallVectorSize, typename Allocator> | template<typename T, std::size_t SmallVectorSize, typename Allocator> | ||||||
| constexpr void Vector<T, SmallVectorSize, Allocator>::reserve(std::size_t cap) noexcept(useNoexcept) { | constexpr void Vector<T, SmallVectorSize, Allocator>::reserve(std::size_t cap) noexcept(useNoexcept) { | ||||||
| 	if (cap <= m_cap) { | 	if (cap <= m_cap) { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user