//
// Boost.Pointer Container
//
//  Copyright Thorsten Ottosen 2003-2005. Use, modification and
//  distribution is subject to the Boost Software License, Version
//  1.0. (See accompanying file LICENSE_1_0.txt or copy at
//  http://www.boost.org/LICENSE_1_0.txt)
//
// For more information, see http://www.boost.org/libs/ptr_container/
//

#include <boost/ptr_container/ptr_vector.hpp>

template class
boost::ptr_vector<int>;

template class
boost::ptr_vector<short>;

template class
boost::ptr_vector<char>;

template class
boost::ptr_vector<char*>;


