diff --git a/Control/Navigation/Navigation/NavigationToken.h b/Control/Navigation/Navigation/NavigationToken.h index 9e41a16925b01bc82cb7665a606e818ee9ded9ff..4891c1e6947b2be5cda217ebf6177e2c14d0cbb0 100644 --- a/Control/Navigation/Navigation/NavigationToken.h +++ b/Control/Navigation/Navigation/NavigationToken.h @@ -269,7 +269,7 @@ class NavigationToken : public INavigationToken // copy operator NavigationToken& operator=(const NavigationToken & anotherToken) { - if ( anotherToken.m_data != 0 ) + if ( this != &anotherToken && anotherToken.m_data != 0 ) { m_data = anotherToken.m_data; m_navCondition = anotherToken.m_navCondition; @@ -278,6 +278,18 @@ class NavigationToken : public INavigationToken return *this; } + // move operator + NavigationToken& operator=(NavigationToken&& anotherToken) + { + if ( this != &anotherToken && anotherToken.m_data != 0 ) + { + m_data = std::move (anotherToken.m_data); + m_navCondition = anotherToken.m_navCondition; + m_navSelector = anotherToken.m_navSelector; + } + return *this; + } + // dump void dumpStore();