OpenCores
URL https://opencores.org/ocsvn/scarts/scarts/trunk

Subversion Repositories scarts

[/] [scarts/] [trunk/] [toolchain/] [scarts-gcc/] [gcc-4.1.1/] [libstdc++-v3/] [include/] [bits/] [stl_raw_storage_iter.h] - Blame information for rev 17

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 17 jlechner
// -*- C++ -*-
2
 
3
// Copyright (C) 2001, 2004 Free Software Foundation, Inc.
4
//
5
// This file is part of the GNU ISO C++ Library.  This library is free
6
// software; you can redistribute it and/or modify it under the
7
// terms of the GNU General Public License as published by the
8
// Free Software Foundation; either version 2, or (at your option)
9
// any later version.
10
 
11
// This library is distributed in the hope that it will be useful,
12
// but WITHOUT ANY WARRANTY; without even the implied warranty of
13
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
// GNU General Public License for more details.
15
 
16
// You should have received a copy of the GNU General Public License along
17
// with this library; see the file COPYING.  If not, write to the Free
18
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
19
// USA.
20
 
21
// As a special exception, you may use this file as part of a free software
22
// library without restriction.  Specifically, if other files instantiate
23
// templates or use macros or inline functions from this file, or you compile
24
// this file and link it with other files to produce an executable, this
25
// file does not by itself cause the resulting executable to be covered by
26
// the GNU General Public License.  This exception does not however
27
// invalidate any other reasons why the executable file might be covered by
28
// the GNU General Public License.
29
 
30
/*
31
 *
32
 * Copyright (c) 1994
33
 * Hewlett-Packard Company
34
 *
35
 * Permission to use, copy, modify, distribute and sell this software
36
 * and its documentation for any purpose is hereby granted without fee,
37
 * provided that the above copyright notice appear in all copies and
38
 * that both that copyright notice and this permission notice appear
39
 * in supporting documentation.  Hewlett-Packard Company makes no
40
 * representations about the suitability of this software for any
41
 * purpose.  It is provided "as is" without express or implied warranty.
42
 *
43
 *
44
 * Copyright (c) 1996
45
 * Silicon Graphics Computer Systems, Inc.
46
 *
47
 * Permission to use, copy, modify, distribute and sell this software
48
 * and its documentation for any purpose is hereby granted without fee,
49
 * provided that the above copyright notice appear in all copies and
50
 * that both that copyright notice and this permission notice appear
51
 * in supporting documentation.  Silicon Graphics makes no
52
 * representations about the suitability of this software for any
53
 * purpose.  It is provided "as is" without express or implied warranty.
54
 */
55
 
56
/** @file stl_raw_storage_iter.h
57
 *  This is an internal header file, included by other library headers.
58
 *  You should not attempt to use it directly.
59
 */
60
 
61
#ifndef _STL_RAW_STORAGE_ITERATOR_H
62
#define _STL_RAW_STORAGE_ITERATOR_H 1
63
 
64
namespace std
65
{
66
  /**
67
   *  This iterator class lets algorithms store their results into
68
   *  uninitialized memory.
69
  */
70
  template <class _ForwardIterator, class _Tp>
71
    class raw_storage_iterator
72
    : public iterator<output_iterator_tag, void, void, void, void>
73
    {
74
    protected:
75
      _ForwardIterator _M_iter;
76
 
77
    public:
78
      explicit
79
      raw_storage_iterator(_ForwardIterator __x)
80
      : _M_iter(__x) {}
81
 
82
      raw_storage_iterator&
83
      operator*() { return *this; }
84
 
85
      raw_storage_iterator&
86
      operator=(const _Tp& __element)
87
      {
88
        std::_Construct(&*_M_iter, __element);
89
        return *this;
90
      }
91
 
92
      raw_storage_iterator<_ForwardIterator, _Tp>&
93
      operator++()
94
      {
95
        ++_M_iter;
96
        return *this;
97
      }
98
 
99
      raw_storage_iterator<_ForwardIterator, _Tp>
100
      operator++(int)
101
      {
102
        raw_storage_iterator<_ForwardIterator, _Tp> __tmp = *this;
103
        ++_M_iter;
104
        return __tmp;
105
      }
106
    };
107
} // namespace std
108
 
109
#endif
110
 
111
// Local Variables:
112
// mode:C++
113
// End:

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.