diff --git a/src/Magnum/SceneGraph/FeatureGroup.hpp b/src/Magnum/SceneGraph/FeatureGroup.hpp index 2340ce5aa..0477d50d9 100644 --- a/src/Magnum/SceneGraph/FeatureGroup.hpp +++ b/src/Magnum/SceneGraph/FeatureGroup.hpp @@ -46,9 +46,21 @@ template void AbstractFeatureGroup struct PointerCompare { + PointerCompare(AbstractFeature& feature): feature(feature) {} + + bool operator()(AbstractFeature& f) { + return &f == &feature; + }; + + private: + AbstractFeature& feature; + }; +} + template void AbstractFeatureGroup::remove(AbstractFeature& feature) { - features.erase(std::find_if(features.begin(), features.end(), - [&feature](AbstractFeature& f) { return &f == &feature; })); + features.erase(std::find_if(features.begin(), features.end(), PointerCompare{feature})); } }}