PPL  1.2
EList_defs.hh
Go to the documentation of this file.
1 /* EList class declaration.
2  Copyright (C) 2001-2010 Roberto Bagnara <bagnara@cs.unipr.it>
3  Copyright (C) 2010-2016 BUGSENG srl (http://bugseng.com)
4 
5 This file is part of the Parma Polyhedra Library (PPL).
6 
7 The PPL is free software; you can redistribute it and/or modify it
8 under the terms of the GNU General Public License as published by the
9 Free Software Foundation; either version 3 of the License, or (at your
10 option) any later version.
11 
12 The PPL is distributed in the hope that it will be useful, but WITHOUT
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
15 for more details.
16 
17 You should have received a copy of the GNU General Public License
18 along with this program; if not, write to the Free Software Foundation,
19 Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1307, USA.
20 
21 For the most up-to-date information see the Parma Polyhedra Library
22 site: http://bugseng.com/products/ppl/ . */
23 
24 #ifndef PPL_EList_defs_hh
25 #define PPL_EList_defs_hh 1
26 
27 #include "EList_types.hh"
29 #include "EList_Iterator_defs.hh"
30 
35 template <typename T>
37  : private Doubly_Linked_Object {
38 public:
41 
44 
46  EList();
47 
49  ~EList();
50 
52  void push_front(T& obj);
53 
55  void push_back(T& obj);
56 
61  iterator insert(iterator position, T& obj);
62 
67  iterator erase(iterator position);
68 
70  bool empty() const;
71 
73  iterator begin();
74 
76  iterator end();
77 
79  const_iterator begin() const;
80 
82  const_iterator end() const;
83 
85  bool OK() const;
86 };
87 
88 #include "EList_inlines.hh"
89 
90 #endif // !defined(PPL_EList_defs_hh)
iterator begin()
Returns an iterator pointing to the beginning of the list.
void push_back(T &obj)
Pushes obj to the back of the list.
Doubly_Linked_Object * erase()
Erases *this from the chain and returns a pointer to the next element.
void push_front(T &obj)
Pushes obj to the front of the list.
iterator end()
Returns an iterator pointing one past the last element in the list.
EList_Iterator< const T > const_iterator
A const iterator to traverse the list.
Definition: EList_defs.hh:40
EList_Iterator< T > iterator
A non-const iterator to traverse the list.
Definition: EList_defs.hh:43
A class providing iterators for embedded lists.
bool empty() const
Returns true if and only if the list is empty.
bool OK() const
Checks if all the invariants are satisfied.
~EList()
Destructs the list and all the elements in it.
A simple kind of embedded list (i.e., a doubly linked objects where the links are embedded in the obj...
Definition: EList_defs.hh:36
iterator insert(iterator position, T &obj)
Inserts obj just before position and returns an iterator that points to the inserted object...