diff --git a/include/llmr/util/std.hpp b/include/llmr/util/std.hpp index c09aa5ff6..fad3380bc 100644 --- a/include/llmr/util/std.hpp +++ b/include/llmr/util/std.hpp @@ -11,6 +11,10 @@ template return ::std::unique_ptr(new T(::std::forward(args)...)); } +} + +namespace llmr { +namespace util { template void erase_if(Container &container, ForwardIterator it, const ForwardIterator end, Predicate pred) { @@ -28,6 +32,7 @@ void erase_if(Container &container, Predicate pred) { erase_if(container, container.begin(), container.end(), pred); } +} } #endif diff --git a/src/geometry/sprite_atlas.cpp b/src/geometry/sprite_atlas.cpp index d76f24ebd..8a055e5a6 100644 --- a/src/geometry/sprite_atlas.cpp +++ b/src/geometry/sprite_atlas.cpp @@ -228,7 +228,7 @@ void SpriteAtlas::update(const Sprite &sprite) { if (!sprite.isLoaded()) return; SpriteAtlas &atlas = *this; - std::erase_if(uninitialized, [&sprite, &atlas](const std::string &name) { + util::erase_if(uninitialized, [&sprite, &atlas](const std::string &name) { Rect dst = atlas.getImage(name, sprite); const SpritePosition &src = sprite.getSpritePosition(name); if (!src) { diff --git a/src/map/map.cpp b/src/map/map.cpp index 3443cf78e..899b9534f 100644 --- a/src/map/map.cpp +++ b/src/map/map.cpp @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include diff --git a/src/map/source.cpp b/src/map/source.cpp index cf5a273b0..55a2bea4e 100644 --- a/src/map/source.cpp +++ b/src/map/source.cpp @@ -284,7 +284,7 @@ bool Source::updateTiles(Map &map) { // Remove tiles that we definitely don't need, i.e. tiles that are not on // the required list. std::set retain_data; - std::erase_if(tiles, [&retain, &retain_data, &changed](std::pair> &pair) { + util::erase_if(tiles, [&retain, &retain_data, &changed](std::pair> &pair) { Tile &tile = *pair.second; bool obsolete = std::find(retain.begin(), retain.end(), tile.id) == retain.end(); if (obsolete) { @@ -296,7 +296,7 @@ bool Source::updateTiles(Map &map) { }); // Remove all the expired pointers from the set. - std::erase_if(tile_data, [&retain_data](std::pair> &pair) { + util::erase_if(tile_data, [&retain_data](std::pair> &pair) { const std::shared_ptr tile = pair.second.lock(); if (!tile) { return true;