15 #ifndef polybori_orderings_order_traits_h_
16 #define polybori_orderings_order_traits_h_
26 template <
class OrderTag>
27 struct order_traits_code;
30 struct order_traits_code<
lex_tag> {
enum {order_code = CTypes::lp}; };
32 struct order_traits_code<
dlex_tag> {
enum {order_code = CTypes::dlex}; };
34 struct order_traits_code<
dp_asc_tag> {
enum {order_code = CTypes::dp_asc}; };
36 struct order_traits_code<
block_dlex_tag> {
enum {order_code = CTypes::block_dlex}; };
38 struct order_traits_code<
block_dp_asc_tag> {
enum {order_code = CTypes::block_dp_asc}; };
40 template <
class OrderTag>
43 template <
class BaseOrderTag>
46 enum { order_code = order_traits_code<block_tag<BaseOrderTag> >::order_code,
47 baseorder_code = order_traits_code<BaseOrderTag>::order_code };
50 template <
class OrderTag>
53 enum { order_code = order_traits_code<OrderTag>::order_code,
54 baseorder_code = order_code };
59 #endif // order_traits_h_