From 6d2b5782fd26b60ad067570838681caa431e0b66 Mon Sep 17 00:00:00 2001
From: Matteo Pignataro <matteo.pignataro@skywarder.eu>
Date: Sun, 23 Apr 2023 19:46:16 +0200
Subject: [PATCH] [File-Name] Substituted "::" in the filename with "_" to make
 the file cross platform compatible

---
 src/shared/logger/Deserializer.h | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/shared/logger/Deserializer.h b/src/shared/logger/Deserializer.h
index ce3009c4f..e22bf5fe2 100644
--- a/src/shared/logger/Deserializer.h
+++ b/src/shared/logger/Deserializer.h
@@ -30,6 +30,7 @@
 #include <iostream>
 #include <limits>
 #include <ostream>
+#include <regex>
 #include <string>
 #include <vector>
 
@@ -130,8 +131,13 @@ void Deserializer::registerType()
 template <typename T>
 void Deserializer::printType(T& t, std::string path, std::string prefix)
 {
-    std::string demangledTypeName = tscpp::demangle(typeid(T).name());
     static std::ofstream* stream;
+    std::string demangledTypeName = tscpp::demangle(typeid(T).name());
+
+    // Replace the :: with the _ in order to make the format string cross
+    // platform compatible
+    demangledTypeName =
+        std::regex_replace(demangledTypeName, std::regex("::"), "_");
 
     try
     {
-- 
GitLab