| namespace Moses2 | |
| { | |
| class FFState | |
| { | |
| public: | |
| virtual ~FFState() { | |
| } | |
| virtual size_t hash() const = 0; | |
| virtual bool operator==(const FFState& other) const = 0; | |
| virtual bool operator!=(const FFState& other) const { | |
| return !(*this == other); | |
| } | |
| virtual std::string ToString() const = 0; | |
| }; | |
| //////////////////////////////////////////////////////////////////////////////////////// | |
| inline std::ostream& operator<<(std::ostream& out, const FFState& obj) | |
| { | |
| out << obj.ToString(); | |
| return out; | |
| } | |
| //////////////////////////////////////////////////////////////////////////////////////// | |
| class DummyState: public FFState | |
| { | |
| public: | |
| DummyState() { | |
| } | |
| virtual size_t hash() const { | |
| return 0; | |
| } | |
| virtual bool operator==(const FFState& other) const { | |
| return true; | |
| } | |
| }; | |
| } | |