Lines Matching refs:SetType
43 // - By providing a custom SetType class, unwanted graph nodes can be excluded
57 template<class SetType, bool External>
59 SetType Visited;
73 template<class SetType>
74 class po_iterator_storage<SetType, true> {
75 SetType &Visited;
78 po_iterator_storage(SetType &VSet) : Visited(VSet) {}
93 class SetType =
98 public po_iterator_storage<SetType, ExtStorage> {
125 po_iterator(NodeRef BB, SetType &S)
126 : po_iterator_storage<SetType, ExtStorage>(S) {
133 po_iterator(SetType &S)
134 : po_iterator_storage<SetType, ExtStorage>(S) {
146 static po_iterator begin(GraphT G, SetType &S) {
149 static po_iterator end(GraphT G, SetType &S) { return po_iterator(S); }
191 template <class T, class SetType = std::set<typename GraphTraits<T>::NodeRef>>
192 struct po_ext_iterator : public po_iterator<T, SetType, true> {
193 po_ext_iterator(const po_iterator<T, SetType, true> &V) :
194 po_iterator<T, SetType, true>(V) {}
197 template<class T, class SetType>
198 po_ext_iterator<T, SetType> po_ext_begin(T G, SetType &S) {
199 return po_ext_iterator<T, SetType>::begin(G, S);
202 template<class T, class SetType>
203 po_ext_iterator<T, SetType> po_ext_end(T G, SetType &S) {
204 return po_ext_iterator<T, SetType>::end(G, S);
207 template <class T, class SetType>
208 iterator_range<po_ext_iterator<T, SetType>> post_order_ext(const T &G, SetType &S) {
213 template <class T, class SetType = std::set<typename GraphTraits<T>::NodeRef>,
215 struct ipo_iterator : public po_iterator<Inverse<T>, SetType, External> {
216 ipo_iterator(const po_iterator<Inverse<T>, SetType, External> &V) :
217 po_iterator<Inverse<T>, SetType, External> (V) {}
236 template <class T, class SetType = std::set<typename GraphTraits<T>::NodeRef>>
237 struct ipo_ext_iterator : public ipo_iterator<T, SetType, true> {
238 ipo_ext_iterator(const ipo_iterator<T, SetType, true> &V) :
239 ipo_iterator<T, SetType, true>(V) {}
240 ipo_ext_iterator(const po_iterator<Inverse<T>, SetType, true> &V) :
241 ipo_iterator<T, SetType, true>(V) {}
244 template <class T, class SetType>
245 ipo_ext_iterator<T, SetType> ipo_ext_begin(const T &G, SetType &S) {
246 return ipo_ext_iterator<T, SetType>::begin(G, S);
249 template <class T, class SetType>
250 ipo_ext_iterator<T, SetType> ipo_ext_end(const T &G, SetType &S) {
251 return ipo_ext_iterator<T, SetType>::end(G, S);
254 template <class T, class SetType>
255 iterator_range<ipo_ext_iterator<T, SetType>>
256 inverse_post_order_ext(const T &G, SetType &S) {