summaryrefslogtreecommitdiff
path: root/libstdc++-v3/include/backward
diff options
context:
space:
mode:
authorPhil Edwards <pme@gcc.gnu.org>2001-12-19 21:57:43 +0000
committerPhil Edwards <pme@gcc.gnu.org>2001-12-19 21:57:43 +0000
commit82b61df521d17a96f60e56ede06a55a8894b1c2e (patch)
tree20530f0219543c3a5e48fc1f7fe35dca73c78c9b /libstdc++-v3/include/backward
parent572cd73ac976578951d38adf15c43d4dc9abb299 (diff)
downloadgcc-82b61df521d17a96f60e56ede06a55a8894b1c2e.tar.gz
Intro.3: New 'Allocators' module.
2001-12-19 Phil Edwards <pme@gcc.gnu.org> * docs/doxygen/Intro.3: New 'Allocators' module. * docs/doxygen/TODO: Update. * docs/doxygen/doxygroups.cc: Update. * docs/doxygen/run_doxygen: Update. * include/bits/stl_alloc.h: Tweak doxygen hooks in comments. * include/bits/std_memory.h: Doxygenate. * include/bits/stl_iterator_base_types.h: Likewise. * include/bits/stl_raw_storage_iter.h: Likewise. * include/bits/stl_tempbuf.h: Likewise. (get_temporary_buffer): Remove unused nonstandard overload. * include/bits/stl_uninitialized.h: Likewise. * include/bits/stl_iterator_base_types.h (input_iterator, output_iterator, forward_iterator, bidirectional_iterator, random_access_iterator): Move old names... * include/backward/iterator.h: ...to here. * include/bits/stl_bvector.h: Update. * include/ext/stl_rope.h: Update. From-SVN: r48185
Diffstat (limited to 'libstdc++-v3/include/backward')
-rw-r--r--libstdc++-v3/include/backward/iterator.h53
1 files changed, 48 insertions, 5 deletions
diff --git a/libstdc++-v3/include/backward/iterator.h b/libstdc++-v3/include/backward/iterator.h
index 391ee2566c0..d35b9420a86 100644
--- a/libstdc++-v3/include/backward/iterator.h
+++ b/libstdc++-v3/include/backward/iterator.h
@@ -46,11 +46,54 @@ using std::random_access_iterator_tag;
#if 0
using std::iterator;
#endif
-using std::input_iterator;
-using std::output_iterator;
-using std::forward_iterator;
-using std::bidirectional_iterator;
-using std::random_access_iterator;
+
+// The base classes input_iterator, output_iterator, forward_iterator,
+// bidirectional_iterator, and random_access_iterator are not part of
+// the C++ standard. (They have been replaced by struct iterator.)
+// They are included for backward compatibility with the HP STL.
+template<typename _Tp, typename _Distance>
+ struct input_iterator {
+ typedef input_iterator_tag iterator_category;
+ typedef _Tp value_type;
+ typedef _Distance difference_type;
+ typedef _Tp* pointer;
+ typedef _Tp& reference;
+ };
+
+struct output_iterator {
+ typedef output_iterator_tag iterator_category;
+ typedef void value_type;
+ typedef void difference_type;
+ typedef void pointer;
+ typedef void reference;
+};
+
+template<typename _Tp, typename _Distance>
+ struct forward_iterator {
+ typedef forward_iterator_tag iterator_category;
+ typedef _Tp value_type;
+ typedef _Distance difference_type;
+ typedef _Tp* pointer;
+ typedef _Tp& reference;
+ };
+
+template<typename _Tp, typename _Distance>
+ struct bidirectional_iterator {
+ typedef bidirectional_iterator_tag iterator_category;
+ typedef _Tp value_type;
+ typedef _Distance difference_type;
+ typedef _Tp* pointer;
+ typedef _Tp& reference;
+ };
+
+template<typename _Tp, typename _Distance>
+ struct random_access_iterator {
+ typedef random_access_iterator_tag iterator_category;
+ typedef _Tp value_type;
+ typedef _Distance difference_type;
+ typedef _Tp* pointer;
+ typedef _Tp& reference;
+ };
using std::iterator_traits;