8 #ifndef __DIADES__AUTOMATA__EXPERIMENTAL__LOCALCANDIDATE__HH__ 9 #define __DIADES__AUTOMATA__EXPERIMENTAL__LOCALCANDIDATE__HH__ 18 namespace Experimental
30 template<
typename StateProperty,
typename FaultProperty>
53 _state(candidate.
state()),
54 _faults(candidate.
faults()){}
60 _state(candidate.
state()),
61 _faults(candidate.
faults()){}
69 const Faults &
faults):_state(state),_faults(faults){}
77 if(
this != &candidate)
104 return !( *
this == candidate);
133 template<
typename StateProperty,
typename FaultProperty>
134 ostream & operator<<(ostream & os, const LocalCandidate<StateProperty,FaultProperty> & candidate)
136 return os << candidate.state() <<
" " << candidate.faults();
148 template <
typename StateProperty,
typename FaultProperty>
149 struct hash<
Diades::Automata::Experimental::LocalCandidate<StateProperty,FaultProperty> >
153 std::size_t seed = 0;
154 std::size_t value = std::hash<StateProperty>()(candidate.
state());
155 seed ^= value + 0x9e3779b9 + (seed<<6) + (seed>>2);
156 value = std::hash<FaultProperty>()(candidate.
faults());
157 seed ^= value + 0x9e3779b9 + (seed<<6) + (seed>>2);
LocalCandidate(const State &state, const Faults &faults)
bool operator==(const LocalCandidate &candidate) const
bool operator!=(const LocalCandidate &candidate) const
const State & state() const
size_t operator()(Diades::Automata::Experimental::LocalCandidate< StateProperty, FaultProperty > const &candidate) const
const Faults & faults() const
Namespace of the Diades project.
LocalCandidate(const LocalCandidate &candidate)
LocalCandidate(LocalCandidate &&candidate)
LocalCandidate & operator=(const LocalCandidate &candidate)