23 #ifndef SPOT_TGBA_STATE_HH
24 # define SPOT_TGBA_STATE_HH
26 #include "misc/common.hh"
31 #include <boost/shared_ptr.hpp>
32 #include "misc/casts.hh"
33 #include "misc/hash.hh"
53 virtual int compare(
const state* other)
const = 0;
74 virtual size_t hash()
const = 0;
116 public std::binary_function<const state*, const state*, bool>
119 operator()(
const state* left,
const state* right)
const
122 return left->
compare(right) < 0;
140 public std::binary_function<const state*, const state*, bool>
143 operator()(
const state* left,
const state* right)
const
146 return 0 == left->
compare(right);
165 public std::unary_function<const state*, size_t>
168 operator()(
const state* that)
const
175 typedef Sgi::hash_set<
const state*,
183 typedef boost::shared_ptr<const state> shared_state;
185 inline void shared_state_deleter(
state* s) { s->
destroy(); }
201 public std::binary_function<shared_state,
205 operator()(shared_state left,
206 shared_state right)
const
209 return left->compare(right.get()) < 0;
229 public std::binary_function<shared_state,
233 operator()(shared_state left,
234 shared_state right)
const
237 return 0 == left->compare(right.get());
258 public std::unary_function<shared_state, size_t>
261 operator()(shared_state that)
const
268 typedef Sgi::hash_set<shared_state,
274 #endif // SPOT_TGBA_STATE_HH