• Main Page
  • Related Pages
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

CStackSelector.h

Go to the documentation of this file.
00001 // -*- c++ -*-
00002 //*****************************************************************************
00037 //*****************************************************************************
00038 
00039 // include basic definitions
00040 #include "pbori_defs.h"
00041 
00042 // include polybori's functionals
00043 #include "pbori_func.h"
00044 
00045 // get stack types, which are used to store and handle paths of current terms
00046 #include "CTermStack.h"
00047 
00048 // include standard iterator functionality
00049 #include <iterator>
00050 
00051 
00052 #ifndef CStackSelector_h_
00053 #define CStackSelector_h_
00054 
00055 BEGIN_NAMESPACE_PBORI
00059 template <class OrderType, class NaviType, class BaseType = internal_tag> 
00060 class CStackSelector {
00061 
00063 
00064   typedef BaseType base;
00065   typedef NaviType navigator;
00066   typedef typename OrderType::descending_property descending;
00067   typedef typename OrderType::degorder_property deg_prop;
00068   typedef typename OrderType::blockorder_property block_prop;
00070 
00072   typedef CTermStack<navigator, std::forward_iterator_tag, base> lex_type;
00073 
00075   typedef CDegTermStack<navigator, descending, invalid_tag, base> deg_type;
00076 
00078   typedef CBlockTermStack<navigator, descending, base> block_type;
00079 
00081   typedef typename on_same_type<deg_prop, valid_tag,
00082                                 deg_type, lex_type>::type nonblock_type;
00083   
00084 public:
00086   typedef typename on_same_type<block_prop, valid_tag,
00087                                 block_type, nonblock_type>::type type;
00088 };
00089 
00090 
00091 END_NAMESPACE_PBORI
00092 
00093 #endif

Generated on Tue Sep 14 2010 for PolyBoRi by  doxygen 1.7.1