llvm.org GIT mirror llvm / a626e16
nobody includes llvm/ADT/iterator.h any more, so get rid of this monstrosity. iterator.h.in is scheduled for deletion in my working copy, but I wait till I see that configure gets regenerated, as it depends on it. I'll commit then. There are still some AC_* tests in the configure.ac dealing with iterators, those can be zapped probably too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80147 91177308-0d34-0410-b5e6-96231b3b80d8 Gabor Greif 11 years ago
2 changed file(s) with 0 addition(s) and 80 deletion(s). Raw diff Collapse all Expand all
13131313 AC_CONFIG_FILES([include/llvm/Config/AsmPrinters.def])
13141314 AC_CONFIG_FILES([include/llvm/Config/AsmParsers.def])
13151315 AC_CONFIG_HEADERS([include/llvm/Support/DataTypes.h])
1316 AC_CONFIG_HEADERS([include/llvm/ADT/iterator.h])
13171316
13181317 dnl Configure the makefile's configuration data
13191318 AC_CONFIG_FILES([Makefile.config])
+0
-79
include/llvm/ADT/iterator.cmake less more
None //===-- llvm/ADT/iterator - Portable wrapper around --*- C++ -*-===//
1 //
2 // The LLVM Compiler Infrastructure
3 //
4 // This file was developed by the LLVM research group and is distributed under
5 // the University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
8 //
9 // This file provides a wrapper around the mysterious header file.
10 // In GCC 2.95.3, the file defines a bidirectional_iterator class (and other
11 // friends), instead of the standard iterator class. In GCC 3.1, the
12 // bidirectional_iterator class got moved out and the new, standards compliant,
13 // iterator<> class was added. Because there is nothing that we can do to get
14 // correct behavior on both compilers, we have this header with #ifdef's. Gross
15 // huh?
16 //
17 // By #includ'ing this file, you get the contents of plus the
18 // following classes in the global namespace:
19 //
20 // 1. bidirectional_iterator
21 // 2. forward_iterator
22 //
23 // The #if directives' expressions are filled in by Autoconf.
24 //
25 //===----------------------------------------------------------------------===//
26
27 #ifndef LLVM_ADT_ITERATOR
28 #define LLVM_ADT_ITERATOR
29
30 #include
31
32 #undef HAVE_BI_ITERATOR
33 #undef HAVE_STD_ITERATOR
34 #undef HAVE_FWD_ITERATOR
35
36 // defined by Kevin
37 #define HAVE_STD_ITERATOR 1
38
39 #ifdef _MSC_VER
40 # define HAVE_BI_ITERATOR 0
41 # define HAVE_STD_ITERATOR 1
42 # define HAVE_FWD_ITERATOR 0
43 #endif
44
45 #if !HAVE_BI_ITERATOR
46 # if HAVE_STD_ITERATOR
47 /// If the bidirectional iterator is not defined, we attempt to define it in
48 /// terms of the C++ standard iterator. Otherwise, we import it with a "using"
49 /// statement.
50 ///
51 template
52 struct bidirectional_iterator
53 : public std::iterator {
54 };
55 # else
56 # error "Need to have standard iterator to define bidirectional iterator!"
57 # endif
58 #else
59 using std::bidirectional_iterator;
60 #endif
61
62 #if !HAVE_FWD_ITERATOR
63 # if HAVE_STD_ITERATOR
64 /// If the forward iterator is not defined, attempt to define it in terms of
65 /// the C++ standard iterator. Otherwise, we import it with a "using" statement.
66 ///
67 template
68 struct forward_iterator
69 : public std::iterator {
70 };
71 # else
72 # error "Need to have standard iterator to define forward iterator!"
73 # endif
74 #else
75 using std::forward_iterator;
76 #endif
77
78 #endif