diff options
author | vrouvrea <vrouvrea@636b058d-ea47-450e-bf9e-a15bfbe3eedb> | 2018-08-21 13:03:33 +0000 |
---|---|---|
committer | vrouvrea <vrouvrea@636b058d-ea47-450e-bf9e-a15bfbe3eedb> | 2018-08-21 13:03:33 +0000 |
commit | ad82d011d06c22ce77817ab4606bd0e15663a145 (patch) | |
tree | 61305c5af4e02eae4f36f3a4d9b1737c479f06d4 /src/Simplex_tree/include/gudhi/Simplex_tree.h | |
parent | 23c6f4e26b60374d9df37445598c087ff6b52512 (diff) |
Move assignment and its associated test
git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/gudhi/branches/simplex_tree_fix_vincent@3819 636b058d-ea47-450e-bf9e-a15bfbe3eedb
Former-commit-id: 6fd6793b177e0a6b803adf5a710f63d8647a9288
Diffstat (limited to 'src/Simplex_tree/include/gudhi/Simplex_tree.h')
-rw-r--r-- | src/Simplex_tree/include/gudhi/Simplex_tree.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/Simplex_tree/include/gudhi/Simplex_tree.h b/src/Simplex_tree/include/gudhi/Simplex_tree.h index d604f994..4759b352 100644 --- a/src/Simplex_tree/include/gudhi/Simplex_tree.h +++ b/src/Simplex_tree/include/gudhi/Simplex_tree.h @@ -360,6 +360,21 @@ class Simplex_tree { return *this; } + /** \brief User-defined move assignment reproduces the whole tree structure. */ + Simplex_tree& operator=(Simplex_tree&& simplex_source) + { +#ifdef DEBUG_TRACES + std::cout << "move assignment" << std::endl; +#endif // DEBUG_TRACES + // Self-assignment detection + if (&simplex_source != this) { + std::swap( null_vertex_, simplex_source.null_vertex_ ); + std::swap( root_, simplex_source.root_ ); + std::swap( filtration_vect_, simplex_source.filtration_vect_ ); + std::swap( dimension_, simplex_source.dimension_ ); + } + return *this; + } /** @} */ // end constructor/destructor private: // Recursive deletion |