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