inline OutputIterator dispatch_copy(InputIterator first, InputIterator last, OutputIterator result, command_queue &queue, typename boost::enable_if< mpl::and_< is_device_iterator<InputIterator>, is_device_iterator<OutputIterator>, mpl::not_< can_copy_with_copy_buffer< InputIterator, OutputIterator > > > >::type* = 0) { return copy_on_device(first, last, result, queue); }
inline OutputIterator dispatch_copy(InputIterator first, InputIterator last, OutputIterator result, command_queue &queue, typename boost::enable_if_c< is_device_iterator<InputIterator>::value && is_device_iterator<OutputIterator>::value && !(boost::is_same< InputIterator, buffer_iterator<typename InputIterator::value_type> >::value && boost::is_same< OutputIterator, buffer_iterator<typename OutputIterator::value_type> >::value && boost::is_same< typename InputIterator::value_type, typename OutputIterator::value_type >::value) >::type* = 0) { return copy_on_device(first, last, result, queue); }