ref<T>: Add cast operator
This commit is contained in:
		
							parent
							
								
									ad0dc41899
								
							
						
					
					
						commit
						fd205fb6f8
					
				
					 2 changed files with 8 additions and 15 deletions
				
			
		|  | @ -322,8 +322,8 @@ ref<Store> openStore(bool reserveSpace) | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     return mode == mDaemon |     return mode == mDaemon | ||||||
|         ? make_ref<Store, RemoteStore>() |         ? (ref<Store>) make_ref<RemoteStore>() | ||||||
|         : make_ref<Store, LocalStore>(reserveSpace); |         : (ref<Store>) make_ref<LocalStore>(reserveSpace); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -134,16 +134,18 @@ public: | ||||||
|         return p; |         return p; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     template<typename T2> | ||||||
|  |     operator ref<T2> () | ||||||
|  |     { | ||||||
|  |         return ref<T2>((std::shared_ptr<T2>) p); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
| private: | private: | ||||||
| 
 | 
 | ||||||
|     template<typename T2, typename... Args> |     template<typename T2, typename... Args> | ||||||
|     friend ref<T2> |     friend ref<T2> | ||||||
|     make_ref(Args&&... args); |     make_ref(Args&&... args); | ||||||
| 
 | 
 | ||||||
|     template<typename T2, typename T3, typename... Args> |  | ||||||
|     friend ref<T2> |  | ||||||
|     make_ref(Args&&... args); |  | ||||||
| 
 |  | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| template<typename T, typename... Args> | template<typename T, typename... Args> | ||||||
|  | @ -154,13 +156,4 @@ make_ref(Args&&... args) | ||||||
|     return ref<T>(p); |     return ref<T>(p); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| template<typename T, typename T2, typename... Args> |  | ||||||
| inline ref<T> |  | ||||||
| make_ref(Args&&... args) |  | ||||||
| { |  | ||||||
|     auto p = std::make_shared<T2>(std::forward<Args>(args)...); |  | ||||||
|     return ref<T>(p); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue