OSDN Git Service

CUDA
[eos/hostdependX86LINUX64.git] / util / X86LINUX64 / cuda-6.5 / include / thrust / iterator / iterator_traits.h
1 /*
2  *  Copyright 2008-2013 NVIDIA Corporation
3  *
4  *  Licensed under the Apache License, Version 2.0 (the "License");
5  *  you may not use this file except in compliance with the License.
6  *  You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  *  Unless required by applicable law or agreed to in writing, software
11  *  distributed under the License is distributed on an "AS IS" BASIS,
12  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  *  See the License for the specific language governing permissions and
14  *  limitations under the License.
15  */
16
17
18 /*! \file thrust/iterator/iterator_traits.h
19  *  \brief Traits and metafunctions for reasoning about the traits of iterators
20  */
21
22 /*
23  * (C) Copyright David Abrahams 2003.
24  * 
25  * Distributed under the Boost Software License, Version 1.0.
26  * (See accompanying NOTICE file for the complete license)
27  *
28  * For more information, see http://www.boost.org
29  */
30
31 #pragma once
32
33 #include <thrust/detail/config.h>
34 #include <iterator>
35
36 namespace thrust
37 {
38
39 /*! \p iterator_traits is a type trait class that provides a uniform
40  *  interface for querying the properties of iterators at compile-time.
41  */
42 template<typename T>
43   struct iterator_traits
44     : public std::iterator_traits<T>
45 {
46 }; // end iterator_traits
47
48
49 template<typename Iterator> struct iterator_value;
50
51 template<typename Iterator> struct iterator_pointer;
52
53 template<typename Iterator> struct iterator_reference;
54
55 template<typename Iterator> struct iterator_difference;
56
57 template<typename Iterator> struct iterator_traversal;
58
59 template<typename Iterator> struct iterator_system;
60
61 // TODO remove this in Thrust v1.7.0
62 template<typename Iterator>
63   struct THRUST_DEPRECATED iterator_space
64 {
65   typedef THRUST_DEPRECATED typename iterator_system<Iterator>::type type;
66 };
67
68
69 } // end thrust
70
71 #include <thrust/iterator/detail/iterator_traversal_tags.h>
72 #include <thrust/iterator/detail/host_system_tag.h>
73 #include <thrust/iterator/detail/device_system_tag.h>
74 #include <thrust/iterator/detail/any_system_tag.h>
75 #include <thrust/iterator/detail/iterator_traits.inl>
76