File size: 881 Bytes
c4a0f23 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | #pragma once
#include <vector>
#include <stddef.h>
#include "util/exception.hh"
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;
}
};
}
|