Index: src/libchcore/TSharedModificationTracker.h =================================================================== diff -u -N -r293e52b38d46653068006262172018a0f0d0a31c -ra5aa3c3cb78f3767641de2627d1a49a1dc35b429 --- src/libchcore/TSharedModificationTracker.h (.../TSharedModificationTracker.h) (revision 293e52b38d46653068006262172018a0f0d0a31c) +++ src/libchcore/TSharedModificationTracker.h (.../TSharedModificationTracker.h) (revision a5aa3c3cb78f3767641de2627d1a49a1dc35b429) @@ -31,19 +31,22 @@ m_tValue(), m_rBitset(rBitset) { + m_rBitset[ChangeBit] = true; } TSharedModificationTracker(const TSharedModificationTracker& rSrc) : m_tValue(rSrc.m_tValue), m_rBitset(rSrc.m_rBitset) { + m_rBitset[ChangeBit] = true; } template TSharedModificationTracker(Bitset& rBitset, const V& rValue) : m_tValue(rValue), m_rBitset(rBitset) { + m_rBitset[ChangeBit] = true; } TSharedModificationTracker& operator=(const TSharedModificationTracker& rValue) @@ -57,8 +60,7 @@ return *this; } - template - TSharedModificationTracker& operator=(const V& rValue) + TSharedModificationTracker& operator=(const T& rValue) { if(m_tValue != rValue) { @@ -69,6 +71,15 @@ return *this; } + template + TSharedModificationTracker& operator=(const V& rValue) + { + m_tValue = rValue; + m_rBitset[ChangeBit] = true; + + return *this; + } + operator const T&() const { return m_tValue;