00001 #pragma once 00002 00003 #include "moses/FF/FFState.h" 00004 00005 namespace Moses 00006 { 00007 00008 struct PointerState : public FFState { 00009 const void* lmstate; 00010 00011 explicit PointerState() { 00012 // uninitialised 00013 } 00014 00015 PointerState(const void* lms) { 00016 lmstate = lms; 00017 } 00018 virtual size_t hash() const { 00019 return (size_t) lmstate; 00020 } 00021 virtual bool operator==(const FFState& other) const { 00022 const PointerState& o = static_cast<const PointerState&>(other); 00023 return lmstate == o.lmstate; 00024 } 00025 00026 }; 00027 00028 } // namespace