#include <iostream>
#include <boost/ptr_container/ptr_vector.hpp>
struct Base {
    virtual void f() { std::cout << "Base\n"; }
    virtual ~Base(){}
};
struct Derived : Base {
    void f() { std::cout << "Derived\n"; }
};
int main()
{
    boost::ptr_vector<Base> v;
    v.push_back(new Derived);
    v[0].f();
}
