#include #include #include #include #include using namespace boost; template< typename Iterator > struct copy { copy( Iterator iter ): m_iter( iter ) {} template< typename U > void operator()( U u ) { *(m_iter++) = u; } Iterator m_iter; }; int main() { typedef boost::mpl::vector_c values; int output[3]; mpl::for_each< values >( copy(&output[0]) ); std::copy( &output[0], &output[3], std::ostream_iterator( std::cout, " " ) ); }