From 4dafefe46a72ba47468b13d011f8299055081b0f Mon Sep 17 00:00:00 2001 From: chai Date: Fri, 22 Oct 2021 23:59:54 +0800 Subject: *LuaBind --- Runtime/Lua/LuaBind/signal/remove_from_container.h | 32 ++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 Runtime/Lua/LuaBind/signal/remove_from_container.h (limited to 'Runtime/Lua/LuaBind/signal/remove_from_container.h') diff --git a/Runtime/Lua/LuaBind/signal/remove_from_container.h b/Runtime/Lua/LuaBind/signal/remove_from_container.h new file mode 100644 index 0000000..9fdc442 --- /dev/null +++ b/Runtime/Lua/LuaBind/signal/remove_from_container.h @@ -0,0 +1,32 @@ +// Aseprite Base Library +// Copyright (c) 2001-2013 David Capello +// +// This file is released under the terms of the MIT license. +// Read LICENSE.txt for more information. + +#ifndef BASE_REMOVE_FROM_CONTAINER_H_INCLUDED +#define BASE_REMOVE_FROM_CONTAINER_H_INCLUDED +#pragma once + +namespace base { + +// Removes all ocurrences of the specified element from the STL container. +template +void remove_from_container(ContainerType& container, + typename ContainerType::const_reference element) +{ + for (typename ContainerType::iterator + it = container.begin(), + end = container.end(); it != end; ) { + if (*it == element) { + it = container.erase(it); + end = container.end(); + } + else + ++it; + } +} + +} + +#endif -- cgit v1.1-26-g67d0