111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* 211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * 311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Copyright (c) 1994 411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Hewlett-Packard Company 511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * 611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Copyright (c) 1996,1997 711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Silicon Graphics Computer Systems, Inc. 811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * 911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Copyright (c) 1997 1011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Moscow Center for SPARC Technology 1111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * 1211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Copyright (c) 1999 1311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Boris Fomitchev 1411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * 1511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * This material is provided "as is", with absolutely no warranty expressed 1611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * or implied. Any use is at your own risk. 1711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * 1811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Permission to use or copy this software for any purpose is hereby granted 1911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * without fee, provided the above notices are retained on all copies. 2011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Permission to modify the code and to distribute modified code is granted, 2111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * provided the above notices are retained, and a notice that the code was 2211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * modified is included with the above copyright notice. 2311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * 2411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert */ 2511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 2611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* NOTE: This is an internal header file, included by other STL headers. 2711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * You should not attempt to use it directly. 2811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert */ 2911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 3011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef _STLP_INTERNAL_RAW_STORAGE_ITERATOR_H 3111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _STLP_INTERNAL_RAW_STORAGE_ITERATOR_H 3211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 3311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef _STLP_INTERNAL_ITERATOR_BASE_H 3411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert# include <stl/_iterator_base.h> 3511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 3611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 3711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert_STLP_BEGIN_NAMESPACE 3811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 3911cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate <class _ForwardIterator, class _Tp> 4011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertclass raw_storage_iterator 4111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert : public iterator<output_iterator_tag,void,void,void,void> 4211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 4311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertprotected: 4411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _ForwardIterator _M_iter; 4511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertpublic: 4611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert typedef output_iterator_tag iterator_category; 4711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert# ifdef _STLP_CLASS_PARTIAL_SPECIALIZATION 4811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert typedef void value_type; 4911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert typedef void difference_type; 5011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert typedef void pointer; 5111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert typedef void reference; 5211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert# endif 5311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert explicit raw_storage_iterator(_ForwardIterator __x) : _M_iter(__x) {} 5411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert raw_storage_iterator<_ForwardIterator, _Tp>& operator*() { return *this; } 5511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert raw_storage_iterator<_ForwardIterator, _Tp>& operator=(const _Tp& __element) { 5611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _Param_Construct(&*_M_iter, __element); 5711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return *this; 5811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 5911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert raw_storage_iterator<_ForwardIterator, _Tp>& operator++() { 6011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ++_M_iter; 6111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return *this; 6211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 6311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert raw_storage_iterator<_ForwardIterator, _Tp> operator++(int) { 6411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert raw_storage_iterator<_ForwardIterator, _Tp> __tmp = *this; 6511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ++_M_iter; 6611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return __tmp; 6711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 6811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 6911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 7011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert# ifdef _STLP_USE_OLD_HP_ITERATOR_QUERIES 7111cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate <class _ForwardIterator, class _Tp> 7211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertinline output_iterator_tag iterator_category(const raw_storage_iterator<_ForwardIterator, _Tp>&) { return output_iterator_tag(); } 7311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 7411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert_STLP_END_NAMESPACE 7511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 7611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif /* _STLP_INTERNAL_RAW_STORAGE_ITERATOR_H */ 7711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 7811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// Local Variables: 7911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// mode:C++ 8011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// End: 81