File tree Expand file tree Collapse file tree 1 file changed +6
-6
lines changed
Expand file tree Collapse file tree 1 file changed +6
-6
lines changed Original file line number Diff line number Diff line change 11#pragma once
22
33#include < iostream>
4+ #include < memory>
45#include < stdexcept>
56#include < utility>
67
7- struct Controllable {
8+ struct Controllable final {
89 static int control;
9- int * resource_;
10+ std::unique_ptr< int > resource_;
1011 Controllable () : resource_(new int (42 )) {}
1112
12- Controllable (Controllable &&rhs) noexcept : resource_(rhs.resource_) {
13- rhs.resource_ = nullptr ;
14- }
13+ Controllable (Controllable &&rhs) noexcept
14+ : resource_(std::move(rhs.resource_)) {}
1515 Controllable &operator =(Controllable &&rhs) noexcept {
1616 std::swap (resource_, rhs.resource_ );
1717 return *this ;
@@ -30,5 +30,5 @@ struct Controllable {
3030 return *this ;
3131 }
3232
33- ~Controllable () { delete resource_; }
33+ ~Controllable () = default ;
3434};
You can’t perform that action at this time.
0 commit comments