#include <string>
#include <vector>
#include <boost/shared_ptr.hpp>
struct X
{
int n1;
int n2;
};
int main()
{
boost::shared_ptr<int> pn;
pn.reset( new int(5));
boost::shared_ptr<std::vector<int> > pvn;
pvn.reset( new std::vector<int>());
int data[6] = {1, 2, 3, 4, 5, 6};
std::copy(data, data + 6, std::back_inserter(*pvn));
boost::shared_ptr<X> px;
px.reset( new X());
boost::shared_ptr<std::string> ps;
ps.reset( new std::string("asdf"));
X *x1 = new X;
X *x2 = new X();
return 0;
}