// -*-c++-*-
// vim: set ft=cpp:

/* Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
   file Copyright.txt or https://cmake.org/licensing for details.  */
#pragma once

#include <list> // IWYU pragma: export

#include <cm/bits/container_helpers.hxx> // IWYU pragma: export

namespace cm {

// should be updated when C++20 is finalized
#if (__cplusplus > 201703L ||                                                 \
     (defined(_MSVC_LANG) && _MSVC_LANG > 201703)) &&                         \
  defined(__cpp_lib_erase_if)

using std::erase;
using std::erase_if;

#else

template <typename T, typename Allocator, typename V>
inline void erase(std::list<T, Allocator>& cont, const V& value)
{
  cont.remove_if([&](auto& elem) { return elem == value; });
}

template <typename T, typename Allocator, typename Predicate>
inline void erase_if(std::list<T, Allocator>& cont, Predicate pred)
{
  cont.remove_if(pred);
}

#endif

} // namespace cm
