#pragma once #include "tl/detail/prologue.h" #include "tl/algorithm.h" namespace tl { ////////////////////////////////////////////////////////////////////////// template auto remove(Container& container, const T& value) noexcept -> decltype(container.begin()) { return eastl::remove(container.begin(), container.end(), value); } ////////////////////////////////////////////////////////////////////////// template auto remove_if(Container& container, const UnaryPredicate& predicate) noexcept -> decltype(container.begin()) { return eastl::remove_if(container.begin(), container.end(), predicate); } ////////////////////////////////////////////////////////////////////////// template auto erase(Container& container, const T& value) noexcept -> decltype(container.begin()) { return container.erase(remove(container, value), container.end()); } ////////////////////////////////////////////////////////////////////////// template auto erase_if(Container& container, const UnaryPredicate& predicate) noexcept -> decltype(container.begin()) { return container.erase(remove_if(container, predicate), container.end()); } ////////////////////////////////////////////////////////////////////////// }