CELIX-412: Fixes issues with perfect forwarding in the C++ depman
Project: http://git-wip-us.apache.org/repos/asf/celix/repo Commit: http://git-wip-us.apache.org/repos/asf/celix/commit/b2984a4b Tree: http://git-wip-us.apache.org/repos/asf/celix/tree/b2984a4b Diff: http://git-wip-us.apache.org/repos/asf/celix/diff/b2984a4b Branch: refs/heads/master Commit: b2984a4b37238b6e91ba3bbdc70aac940e186f76 Parents: 3514629 Author: Pepijn Noltes <[email protected]> Authored: Mon Oct 16 21:02:52 2017 +0200 Committer: Pepijn Noltes <[email protected]> Committed: Mon Oct 16 21:02:52 2017 +0200 ---------------------------------------------------------------------- dependency_manager_cxx/include/celix/dm/Component.h | 2 +- dependency_manager_cxx/include/celix/dm/Component_Impl.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/celix/blob/b2984a4b/dependency_manager_cxx/include/celix/dm/Component.h ---------------------------------------------------------------------- diff --git a/dependency_manager_cxx/include/celix/dm/Component.h b/dependency_manager_cxx/include/celix/dm/Component.h index 9e79d0f..06aaf20 100644 --- a/dependency_manager_cxx/include/celix/dm/Component.h +++ b/dependency_manager_cxx/include/celix/dm/Component.h @@ -127,7 +127,7 @@ namespace celix { namespace dm { * * @return the DM Component reference for chaining (fluent API) */ - Component<T>& setInstance(T inst); + Component<T>& setInstance(T&& inst); /** * Adds a C++ interface to provide as service to the Celix framework. http://git-wip-us.apache.org/repos/asf/celix/blob/b2984a4b/dependency_manager_cxx/include/celix/dm/Component_Impl.h ---------------------------------------------------------------------- diff --git a/dependency_manager_cxx/include/celix/dm/Component_Impl.h b/dependency_manager_cxx/include/celix/dm/Component_Impl.h index d1b1ebe..722431f 100644 --- a/dependency_manager_cxx/include/celix/dm/Component_Impl.h +++ b/dependency_manager_cxx/include/celix/dm/Component_Impl.h @@ -203,7 +203,7 @@ Component<T>& Component<T>::setInstance(std::unique_ptr<T>&& inst) { } template<class T> -Component<T>& Component<T>::setInstance(T inst) { +Component<T>& Component<T>::setInstance(T&& inst) { this->instance = std::unique_ptr<T> {nullptr}; this->sharedInstance = std::shared_ptr<T> {nullptr}; this->valInstance.clear();
