Consider these classes.
class Base { ... }; class Derived : public Base { ... };
this function
void BaseFoo( std::ve
Instead of passing the container object (vector<>), pass in begin and end iterators like the rest of the STL algorithms. The function that receives them will be templated, and it won't matter if you pass in Derived* or Base*.
vector<>
begin
end