PPL  1.2
Pending_List_inlines.hh
Go to the documentation of this file.
1 /* Pending_List class implementation: inline functions.
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_Pending_List_inlines_hh
25 #define PPL_Pending_List_inlines_hh 1
26 
27 #include <cassert>
28 
29 namespace Parma_Polyhedra_Library {
30 
31 namespace Implementation {
32 
33 namespace Watchdog {
34 
35 template <typename Traits>
36 inline
38  : active_list(),
39  free_list() {
40  assert(OK());
41 }
42 
43 template <typename Traits>
44 inline
46 }
47 
48 template <typename Traits>
49 inline typename Pending_List<Traits>::iterator
51  return active_list.begin();
52 }
53 
54 template <typename Traits>
55 inline typename Pending_List<Traits>::iterator
57  return active_list.end();
58 }
59 
60 template <typename Traits>
61 inline bool
63  return active_list.empty();
64 }
65 
66 template <typename Traits>
67 inline typename Pending_List<Traits>::iterator
69  assert(!empty());
70  iterator next = active_list.erase(position);
71  free_list.push_back(*position);
72  assert(OK());
73  return next;
74 }
75 
76 } // namespace Watchdog
77 
78 } // namespace Implementation
79 
80 } // namespace Parma_Polyhedra_Library
81 
82 #endif // !defined(PPL_Pending_List_inlines_hh)
bool empty() const
Returns true if and only if the list is empty.
A class providing iterators for embedded lists.
iterator erase(iterator position)
Removes the element pointed to by position, returning an iterator pointing to the next element...
bool OK() const
Checks if all the invariants are satisfied.
The entire library is confined to this namespace.
Definition: version.hh:61
iterator end()
Returns an iterator pointing one past the last element in the list.
iterator begin()
Returns an iterator pointing to the beginning of the list.