diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/crepe/ComponentManager.hpp | 5 | 
1 files changed, 3 insertions, 2 deletions
| diff --git a/src/crepe/ComponentManager.hpp b/src/crepe/ComponentManager.hpp index 66e027f..f469d12 100644 --- a/src/crepe/ComponentManager.hpp +++ b/src/crepe/ComponentManager.hpp @@ -30,7 +30,8 @@ T & ComponentManager::add_component(uint32_t id, Args &&... args) {  	// Create a new component of type T (arguments directly forwarded). The  	// constructor must be called by ComponentManager. -	T * instance = new T(id, forward<Args>(args)...); +	T * instance_pointer = new T(id, forward<Args>(args)...); +	unique_ptr<T> instance = unique_ptr<T>(instance_pointer);  	// Check if the vector size is not greater than get_instances_max  	if (instance->get_instances_max() != -1 @@ -40,7 +41,7 @@ T & ComponentManager::add_component(uint32_t id, Args &&... args) {  	}  	// store its unique_ptr in the vector<> -	components[type][id].push_back(unique_ptr<T>(instance)); +	components[type][id].push_back(move(instance));  	return *instance;  } |