PolyBoRi
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
libpolybori
include
polybori
iterators
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
23
#include <
polybori/routines/pbori_func.h
>
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
31
#include <
polybori/orderings/COrderingTags.h
>
32
33
BEGIN_NAMESPACE_PBORI
37
template
<
class
OrderType,
class
NaviType,
class
BaseType =
int
ernal_tag>
38
class
CStackSelector
{
39
41
42
typedef
BaseType base;
43
typedef
NaviType navigator;
44
typedef
COrderingTags<typename OrderType::order_tag>
orderings_tags
;
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
52
typedef
CTermStack<navigator, std::forward_iterator_tag, base>
lex_type
;
53
55
typedef
CDegTermStack<navigator, descending, invalid_tag, base>
deg_type
;
56
58
typedef
CBlockTermStack<navigator, descending, base>
block_type
;
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
71
END_NAMESPACE_PBORI
72
73
#endif
Generated by
1.8.3.1