Remove outermost loop parameter.
[official-gcc/graphite-test-results.git] / libpcp / pcp_set.h
blobffaf18dc48dd17f892bf9e544e8150ec3f894f94
1 // Copyright (C) 2009 Free Software Foundation, Inc.
2 // Contributed by Jan Sjodin <jan.sjodin@amd.com>.
4 // This file is part of the Polyhedral Compilation Package Library (libpcp).
6 // Libpcp is free software; you can redistribute it and/or modify it
7 // under the terms of the GNU Lesser General Public License as published by
8 // the Free Software Foundation; either version 2.1 of the License, or
9 // (at your option) any later version.
11 // Libpcp is distributed in the hope that it will be useful, but WITHOUT ANY
12 // WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
13 // FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for
14 // more details.
16 // You should have received a copy of the GNU Lesser General Public License
17 // along with libpcp; see the file COPYING.LIB. If not, write to the
18 // Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19 // MA 02110-1301, USA.
21 // As a special exception, if you link this library with other files, some
22 // of which are compiled with GCC, to produce an executable, this library
23 // does not by itself cause the resulting executable to be covered by the
24 // GNU General Public License. This exception does not however invalidate
25 // any other reasons why the executable file might be covered by the GNU
26 // General Public License.
28 // PCP Dynamic Int Array
29 #ifndef _PCP_SET_
30 #define _PCP_SET_
32 #include "pcp_error.h"
33 #include "pcp_alloc.h"
34 #include "pcp_dynamic_array.h"
36 template <typename T> class PcpSet
38 protected:
39 PcpDynamicArray<T>* array;
41 void setArray(PcpDynamicArray<T>* array)
43 this->array = array;
46 PcpDynamicArray<T>* getArray()
48 return this->array;
51 public:
52 PcpIterator<T>* getIterator()
54 return getArray()->getIterator();
57 int getSize()
59 return getArray()->getSize();
62 bool contains(T element)
64 PcpIterator<T>* iter = this->getIterator();
65 for(;iter->hasNext(); iter->next())
67 if(iter->get() == element)
69 delete iter;
70 return true;
73 delete iter;
74 return false;
77 void insert(T element)
79 if(!this->contains(element))
80 this->getArray()->add(element);
83 PcpSet()
85 this->setArray(new PcpDynamicArray<T>(4));
89 #endif // _PCP_SET_