51 #ifndef CStackSelector_h_
52 #define CStackSelector_h_
56 template <
class OrderType,
class NaviType,
class BaseType =
internal_tag>
57 class CStackSelector {
61 typedef BaseType base;
62 typedef NaviType navigator;
63 typedef typename OrderType::descending_property descending;
64 typedef typename OrderType::degorder_property deg_prop;
65 typedef typename OrderType::blockorder_property block_prop;
69 typedef CTermStack<navigator, std::forward_iterator_tag, base> lex_type;
72 typedef CDegTermStack<navigator, descending, invalid_tag, base>
deg_type;
75 typedef CBlockTermStack<navigator, descending, base> block_type;
78 typedef typename on_same_type<deg_prop, valid_tag,
79 deg_type, lex_type>::type nonblock_type;
83 typedef typename on_same_type<block_prop, valid_tag,
84 block_type, nonblock_type>::type type;