17 #ifndef VCSN_AUTOMATA_IMPLEMENTATION_BMIG_BMIG_HANDLERS_OP_HXX
18 # define VCSN_AUTOMATA_IMPLEMENTATION_BMIG_BMIG_HANDLERS_OP_HXX
21 # include <vaucanson/automata/concept/handlers.hh>
25 #define HOPERATOR(Op) \
26 template<typename T, typename U> \
27 bool operator Op (const handler<transition_h, boost::multi_index::detail::hashed_index_iterator<T, U> >& h1,\
28 const handler<transition_h, boost::multi_index::detail::hashed_index_iterator<T, U> >& h2)\
30 if (h1.value()->from_ == h2.value()->from_) \
31 if (h1.value()->to_ == h2.value()->to_) \
32 return h1.value()->label_ Op h2.value()->label_; \
34 return h1.value()->to_ Op h2.value()->to_; \
36 return h1.value()->from_ Op h2.value()->from_; \
48 #define HOPERATOR(Op) \
49 template<typename T, typename U> \
50 bool operator Op (const handler<transition_h, \
51 boost::multi_index::detail::hashed_index_iterator<T, U> >& h1,\
52 const handler<transition_h, \
53 boost::multi_index::detail::hashed_index_iterator<T, U> >& h2)\
55 return h1.value() Op h2.value(); \
67 #define HOPERATOR(Op) \
69 bool operator Op (const handler<state_h, boost::shared_ptr<std::size_t> >& h1, \
70 const handler<state_h, boost::shared_ptr<std::size_t> >& h2) \
72 return h1.value() Op h2.value(); \
82 bool operator> (
const handler<state_h, boost::shared_ptr<std::size_t> >& h1,
83 const handler<state_h, boost::shared_ptr<std::size_t> >& h2)
89 bool operator<= (const handler<state_h, boost::shared_ptr<std::size_t> >& h1,
90 const handler<state_h, boost::shared_ptr<std::size_t> >& h2)
92 return h1 < h2 || h1 == h2;
96 bool operator>= (
const handler<state_h, boost::shared_ptr<std::size_t> >& h1,
97 const handler<state_h, boost::shared_ptr<std::size_t> >& h2)
104 #endif // ! VCSN_AUTOMATA_IMPLEMENTATION_BMIG_BMIG_HANDLERS_OP_HXX