PolyBoRi
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
libpolybori
include
polybori
orderings
order_traits.h
Go to the documentation of this file.
1
// -*- c++ -*-
2
//*****************************************************************************
13
//*****************************************************************************
14
15
#ifndef polybori_orderings_order_traits_h_
16
#define polybori_orderings_order_traits_h_
17
18
// include basic definitions
19
#include <
polybori/pbori_defs.h
>
20
21
// include ordering tags
22
#include "
order_tags.h
"
23
24
BEGIN_NAMESPACE_PBORI
25
26
template
<
class
OrderTag>
27
struct
order_traits_code
;
28
29
template
<>
30
struct
order_traits_code
<
lex_tag
> {
enum
{order_code =
CTypes::lp
}; };
31
template
<>
32
struct
order_traits_code
<
dlex_tag
> {
enum
{order_code =
CTypes::dlex
}; };
33
template
<>
34
struct
order_traits_code
<
dp_asc_tag
> {
enum
{order_code =
CTypes::dp_asc
}; };
35
template
<>
36
struct
order_traits_code
<
block_dlex_tag
> {
enum
{order_code =
CTypes::block_dlex
}; };
37
template
<>
38
struct
order_traits_code
<
block_dp_asc_tag
> {
enum
{order_code =
CTypes::block_dp_asc
}; };
39
40
template
<
class
OrderTag>
41
class
order_traits
;
42
43
template
<
class
BaseOrderTag>
44
class
order_traits
<
block_tag
<BaseOrderTag> > {
45
public
:
46
enum
{ order_code =
order_traits_code<block_tag<BaseOrderTag>
>::order_code,
47
baseorder_code =
order_traits_code<BaseOrderTag>::order_code
};
48
};
49
50
template
<
class
OrderTag>
51
class
order_traits {
52
public
:
53
enum
{ order_code =
order_traits_code<OrderTag>::order_code
,
54
baseorder_code = order_code };
55
};
56
57
END_NAMESPACE_PBORI
58
59
#endif // order_traits_h_
Generated by
1.8.3.1