diff options
Diffstat (limited to 'include/erebos/storage.h')
-rw-r--r-- | include/erebos/storage.h | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/include/erebos/storage.h b/include/erebos/storage.h index 75b8139..7ec73ab 100644 --- a/include/erebos/storage.h +++ b/include/erebos/storage.h @@ -507,12 +507,16 @@ class WatchedHead : public Head<T> friend class Head<T>; WatchedHead(const Head<T> & h, int watcherId): Head<T>(h), watcherId(watcherId) {} + int watcherId; + +public: WatchedHead(WatchedHead<T> && h): Head<T>(h), watcherId(h.watcherId) { h.watcherId = -1; } - int watcherId; -public: + WatchedHead<T> & operator=(WatchedHead<T> && h) + { watcherId = h.watcherId; h.watcherId = -1; return *this; } + WatchedHead<T> & operator=(const Head<T> & h) { if (Head<T>::id() != h.id()) throw std::runtime_error("WatchedHead ID mismatch"); |