19void erase_ptr(std::vector<std::unique_ptr<T>>& container,
const T* elementPtr) {
20 auto it = std::find_if(container.begin(), container.end(),
21 [elementPtr](
const std::unique_ptr<T>& uniquePtr)
23 return uniquePtr.get() == elementPtr;
27 if (it == container.end()) {
28 throw std::logic_error(
"erase_ptr: cannot find unique pointer to be removed");
46void erase_ptr(std::vector<std::shared_ptr<T>>& container,
const T* elementPtr) {
47 auto it = std::find_if(container.begin(), container.end(),
48 [elementPtr](
const std::shared_ptr<T>& sharedPtr)
50 return sharedPtr.get() == elementPtr;
54 if (it == container.end()) {
55 throw std::logic_error(
"erase_ptr: cannot find shared pointer to be removed");
73void erase_ptr(std::vector<T*>& container,
const T* elementPtr) {
74 auto it = std::find_if(container.begin(), container.end(),
75 [elementPtr](
const T* ptr)
77 return ptr == elementPtr;
81 if (it == container.end()) {
82 throw std::logic_error(
"erase_ptr: cannot find pointer to be removed");
100void erase_pair(std::set< std::pair<K,T*>, Comparator >& container,
const T* elementPtr) {
101 auto it = std::find_if(container.begin(), container.end(),
102 [elementPtr](
const std::pair<K,T*>& element)
104 return element.second == elementPtr;
108 if (it == container.end()) {
109 throw std::logic_error(
"erase_pair: cannot find element to be removed");
void erase_pair(std::set< std::pair< K, T * >, Comparator > &container, const T *elementPtr)
Erase a specific element from a set of key-value pairs where the value is a pointer to the element.