Advertisement
Guest User

Untitled

a guest
Jan 21st, 2018
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.93 KB | None | 0 0
  1. Matrix<T>(const Matrix<T> &other) = delete;
  2. Matrix<T>& operator=(const Matrix<T>& other) = delete;
  3.  
  4. Matrix(Matrix<T>&& other) : rows(other.rows), columns(other.columns) {
  5. data = new T *[rows];
  6. size_t i = 0;
  7. try {
  8. for (; i != rows; ++i) {
  9. data[i] = new T[columns];
  10. }
  11. for (size_t k = 0; k < rows; ++k) {
  12. for (size_t j = 0; j < columns; ++j) {
  13. data[k][j] = other.data[k][j];
  14. }
  15. }
  16. }
  17. catch (...) {
  18. for (size_t k = 0; k != i; ++k) {
  19. delete[] data[k];
  20. }
  21. delete[] data;
  22. throw;
  23. }
  24. }
  25.  
  26. Matrix<T>& operator=(Matrix<T>&& other) {
  27. std::swap(this->data, other.data);
  28. std::swap(this->rows, other.rows);
  29. std::swap(this->columns, other.columns);
  30. return *this;
  31. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement