diff options
Diffstat (limited to 'boost/compute/algorithm/copy_if.hpp')
-rw-r--r-- | boost/compute/algorithm/copy_if.hpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/boost/compute/algorithm/copy_if.hpp b/boost/compute/algorithm/copy_if.hpp index bdedcb8536..7cccaa572e 100644 --- a/boost/compute/algorithm/copy_if.hpp +++ b/boost/compute/algorithm/copy_if.hpp @@ -11,8 +11,11 @@ #ifndef BOOST_COMPUTE_ALGORITHM_COPY_IF_HPP #define BOOST_COMPUTE_ALGORITHM_COPY_IF_HPP +#include <boost/static_assert.hpp> + #include <boost/compute/algorithm/transform_if.hpp> #include <boost/compute/functional/identity.hpp> +#include <boost/compute/type_traits/is_device_iterator.hpp> namespace boost { namespace compute { @@ -27,6 +30,8 @@ inline OutputIterator copy_index_if(InputIterator first, Predicate predicate, command_queue &queue = system::default_queue()) { + BOOST_STATIC_ASSERT(is_device_iterator<InputIterator>::value); + BOOST_STATIC_ASSERT(is_device_iterator<OutputIterator>::value); typedef typename std::iterator_traits<InputIterator>::value_type T; return detail::transform_if_impl( @@ -47,6 +52,8 @@ inline OutputIterator copy_if(InputIterator first, Predicate predicate, command_queue &queue = system::default_queue()) { + BOOST_STATIC_ASSERT(is_device_iterator<InputIterator>::value); + BOOST_STATIC_ASSERT(is_device_iterator<OutputIterator>::value); typedef typename std::iterator_traits<InputIterator>::value_type T; return ::boost::compute::transform_if( |