/* * Copyright 2008-2012 NVIDIA Corporation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /*! \file thrust/iterator/iterator_traits.h * \brief Traits and metafunctions for reasoning about the traits of iterators */ /* * (C) Copyright David Abrahams 2003. * * Distributed under the Boost Software License, Version 1.0. * (See accompanying NOTICE file for the complete license) * * For more information, see http://www.boost.org */ #pragma once #include #include namespace thrust { /*! \p iterator_traits is a type trait class that provides a uniform * interface for querying the properties of iterators at compile-time. */ template struct iterator_traits : public std::iterator_traits { }; // end iterator_traits template struct iterator_value; template struct iterator_pointer; template struct iterator_reference; template struct iterator_difference; template struct iterator_traversal; template struct iterator_system; // TODO remove this in Thrust v1.7.0 template struct THRUST_DEPRECATED iterator_space { typedef THRUST_DEPRECATED typename iterator_system::type type; }; } // end thrust #include #include #include #include #include