Fix error on ignoring attributes on template argument

create a custom deleter to fix the issue

Change-Id: Ica670a450cd3a24af46c7b27f6692ed97a24499b
Signed-off-by: Jinu Joy Thomas <jinu.joy.thomas@in.ibm.com>
diff --git a/ibm_vpd_utils.hpp b/ibm_vpd_utils.hpp
index 82a0083..6395e5b 100644
--- a/ibm_vpd_utils.hpp
+++ b/ibm_vpd_utils.hpp
@@ -290,8 +290,17 @@
 
     std::string cmd = path + getCommand(args...);
 
-    std::unique_ptr<FILE, decltype(&pclose)> pipe(popen(cmd.c_str(), "r"),
-                                                  pclose);
+    struct custom_file_deleter
+    {
+        void operator()(std::FILE* fp)
+        {
+            pclose(fp);
+        }
+    };
+    using unique_file_custom_deleter =
+        std::unique_ptr<std::FILE, custom_file_deleter>;
+    unique_file_custom_deleter pipe{popen(cmd.c_str(), "r")};
+
     if (!pipe)
     {
         throw std::runtime_error("popen() failed!");