From 9c6656ad415fd11f78d5291ee1eaa3a69b4dceac Mon Sep 17 00:00:00 2001
From: Riccardo Maria Bianchi <riccardo.maria.bianchi@cern.ch>
Date: Mon, 29 Apr 2024 16:32:57 +0200
Subject: [PATCH] Add helper function to print vectors of variants

---
 .../GeoModelCppHelpers/GMCppHelpers.h         | 20 +++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/GeoModelIO/GeoModelCppHelpers/GeoModelCppHelpers/GMCppHelpers.h b/GeoModelIO/GeoModelCppHelpers/GeoModelCppHelpers/GMCppHelpers.h
index b6e793fbb..982bfcc6e 100644
--- a/GeoModelIO/GeoModelCppHelpers/GeoModelCppHelpers/GMCppHelpers.h
+++ b/GeoModelIO/GeoModelCppHelpers/GeoModelCppHelpers/GMCppHelpers.h
@@ -73,6 +73,26 @@ namespace GeoModelIO {
             char *val = std::getenv(key.c_str());
             return val == NULL ? std::string("") : std::string(val);
         }
+
+        static void printStdVectorVariants(const std::vector<std::variant<int, long, float, double, std::string>> vec)
+        {
+            for (const auto &item : vec)
+            {
+                if (std::holds_alternative<int>(item))
+                    std::cout << std::get<int>(item); // INT
+                else if (std::holds_alternative<long>(item))
+                    std::cout << std::get<long>(item);
+                else if (std::holds_alternative<float>(item))
+                    std::cout << std::get<float>(item);
+                else if (std::holds_alternative<double>(item))
+                    std::cout << std::get<double>(item);
+                else if (std::holds_alternative<std::string>(item))
+                    std::cout << std::get<std::string>(item);
+
+                std::cout << ", ";
+            }
+                std::cout << std::endl;
+        }
     };
 } // namespace GeoModelIO
 
-- 
GitLab