clang-tidy: Enable performance-unnecessary-value-param check

This check flags value parameter declarations of expensive to copy
types that are copied for each invocation but it would suffice to
pass them by const reference.

Signed-off-by: George Liu <liuxiwei@ieisystem.com>
Change-Id: Ia287488c3bbe1a64e05760cbece119456d8f82f3
diff --git a/.clang-tidy b/.clang-tidy
index 6569cc4..4180cc8 100644
--- a/.clang-tidy
+++ b/.clang-tidy
@@ -224,7 +224,8 @@
 performance-noexcept-move-constructor,
 performance-trivially-destructible,
 performance-type-promotion-in-math-fn,
-performance-unnecessary-copy-initialization'
+performance-unnecessary-copy-initialization,
+performance-unnecessary-value-param'
 
 WarningsAsErrors: '*'
 HeaderFilterRegex: '.*'
diff --git a/src/version.hpp b/src/version.hpp
index 144c96e..2b0af13 100644
--- a/src/version.hpp
+++ b/src/version.hpp
@@ -77,7 +77,7 @@
             VersionPurpose versionPurpose, eraseFunc callback) :
         VersionInherit(bus, (objPath).c_str(),
                        VersionInherit::action::defer_emit),
-        eraseCallback(callback), bus(bus), objPath(objPath),
+        eraseCallback(std::move(callback)), bus(bus), objPath(objPath),
         versionId(versionId), versionStr(versionString)
     {
         // Set properties.