#ifndef BOOST_COMPUTE_DETAIL_ITERATOR_TRAITS_HPP
#define BOOST_COMPUTE_DETAIL_ITERATOR_TRAITS_HPP
#include <iterator>
#include <boost/compute/detail/is_contiguous_iterator.hpp>
#include <boost/compute/type_traits/is_device_iterator.hpp>
namespace boost {
namespace compute {
namespace detail {
template<class Iterator>
struct iterator_traits : public std::iterator_traits<Iterator>
{
static const bool is_contiguous = is_contiguous_iterator<Iterator>::value;
static const bool is_on_device = is_device_iterator<Iterator>::value;
static const bool is_on_host = !is_on_device;
};
} } }
#endif