Example #1
0
inline O copy(I first, I last, O dst)
{
   typedef bcd::bool_
   <  are_corresponding<I, O>::value &&
      bcd::is_trivially_copy_assignable<typename ::boost::container::iterator_traits<O>::value_type>::value
   > use_memmove;

   return copy_dispatch(first, last, dst, use_memmove());                       // may throw
}
inline O copy(I first, I last, O dst)
{
    typedef typename
    ::boost::mpl::and_<
        are_corresponding<I, O>,
        ::boost::has_trivial_assign<
            typename ::boost::iterator_value<O>::type
        >
    >::type
    use_memmove;
    
    return copy_dispatch(first, last, dst, use_memmove());                       // may throw
}