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 remove(T const &val); | ||||
|  | ||||
| 		constexpr void reserve(std::size_t cap) 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); | ||||
| } | ||||
|  | ||||
| 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> | ||||
| constexpr void Vector<T, SmallVectorSize, Allocator>::reserve(std::size_t cap) noexcept(useNoexcept) { | ||||
| 	if (cap <= m_cap) { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user