PolyBoRi
CStackSelector.h
Go to the documentation of this file.
1 // -*- c++ -*-
2 //*****************************************************************************
14 //*****************************************************************************
15 
16 #ifndef polybori_iterators_CStackSelector_h_
17 #define polybori_iterators_CStackSelector_h_
18 
19 // include basic definitions
20 #include <polybori/pbori_defs.h>
21 
22 // include polybori's functionals
24 
25 // get stack types, which are used to store and handle paths of current terms
26 #include "CTermStack.h"
27 
28 // include standard iterator functionality
29 #include <iterator>
30 
32 
37 template <class OrderType, class NaviType, class BaseType = internal_tag>
39 
41 
42  typedef BaseType base;
43  typedef NaviType navigator;
45 
46  typedef typename orderings_tags::descending_property descending;
47  typedef typename orderings_tags::degorder_property deg_prop;
48  typedef typename orderings_tags::blockorder_property block_prop;
50 
53 
56 
59 
61  typedef typename on_same_type<deg_prop, valid_tag,
62  deg_type, lex_type>::type nonblock_type;
63 
64 public:
66  typedef typename on_same_type<block_prop, valid_tag,
67  block_type, nonblock_type>::type type;
68 };
69 
70 
72 
73 #endif