19720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block/* 29720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * 39720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Copyright (c) 1994 49720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Hewlett-Packard Company 59720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * 69720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Copyright (c) 1996,1997 79720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Silicon Graphics Computer Systems, Inc. 89720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * 99720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Copyright (c) 1997 109720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Moscow Center for SPARC Technology 119720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * 129720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Copyright (c) 1999 139720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Boris Fomitchev 149720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * 159720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * This material is provided "as is", with absolutely no warranty expressed 169720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * or implied. Any use is at your own risk. 179720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * 189720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Permission to use or copy this software for any purpose is hereby granted 199720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * without fee, provided the above notices are retained on all copies. 209720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Permission to modify the code and to distribute modified code is granted, 219720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * provided the above notices are retained, and a notice that the code was 229720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * modified is included with the above copyright notice. 239720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * 249720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block */ 259720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 269720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block/* NOTE: This is an internal header file, included by other STL headers. 279720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * You should not attempt to use it directly. 289720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block */ 299720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 309720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#ifndef _STLP_INTERNAL_RAW_STORAGE_ITERATOR_H 319720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#define _STLP_INTERNAL_RAW_STORAGE_ITERATOR_H 329720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 339720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#ifndef _STLP_INTERNAL_ITERATOR_BASE_H 349720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# include <stl/_iterator_base.h> 359720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif 369720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 379720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block_STLP_BEGIN_NAMESPACE 389720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 399720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blocktemplate <class _ForwardIterator, class _Tp> 409720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockclass raw_storage_iterator 419720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block : public iterator<output_iterator_tag,void,void,void,void> 429720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block{ 439720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockprotected: 449720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block _ForwardIterator _M_iter; 459720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockpublic: 469720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block typedef output_iterator_tag iterator_category; 479720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# ifdef _STLP_CLASS_PARTIAL_SPECIALIZATION 489720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block typedef void value_type; 499720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block typedef void difference_type; 509720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block typedef void pointer; 519720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block typedef void reference; 529720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# endif 539720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block explicit raw_storage_iterator(_ForwardIterator __x) : _M_iter(__x) {} 549720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block raw_storage_iterator<_ForwardIterator, _Tp>& operator*() { return *this; } 559720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block raw_storage_iterator<_ForwardIterator, _Tp>& operator=(const _Tp& __element) { 569720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block _Param_Construct(&*_M_iter, __element); 579720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block return *this; 589720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block } 599720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block raw_storage_iterator<_ForwardIterator, _Tp>& operator++() { 609720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block ++_M_iter; 619720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block return *this; 629720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block } 639720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block raw_storage_iterator<_ForwardIterator, _Tp> operator++(int) { 649720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block raw_storage_iterator<_ForwardIterator, _Tp> __tmp = *this; 659720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block ++_M_iter; 669720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block return __tmp; 679720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block } 689720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block}; 699720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 709720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# ifdef _STLP_USE_OLD_HP_ITERATOR_QUERIES 719720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blocktemplate <class _ForwardIterator, class _Tp> 729720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockinline output_iterator_tag iterator_category(const raw_storage_iterator<_ForwardIterator, _Tp>&) { return output_iterator_tag(); } 739720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif 749720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block_STLP_END_NAMESPACE 759720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 769720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif /* _STLP_INTERNAL_RAW_STORAGE_ITERATOR_H */ 779720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 789720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block// Local Variables: 799720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block// mode:C++ 809720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block// End: 81