Was writing this code in Visual Studio 2015. Note the ‘auto’ specifier in the lambda parameter list.
template <typename Container, typename Entity>
void Remove( Container& c, Entity e )
{
auto Iter = std::remove_if(
c.begin(), c.end(),
[ e ]( const auto& Ent ){ return Ent == e; }
);
c.erase( Iter, c.end() );
}
Ended up with this code to stay compatible with Visual Studio 2013.
template <typename Container, typename Entity>
void Remove( Container& c, Entity e )
{
auto Iter = std::remove_if(
c.begin(), c.end(),
[ e ]( const typename Container::value_type& Ent ) { return Ent == e; }
);
c.erase( Iter, c.end() );
}