From 273f40d7d7a7b1606658052a9795a87e25740136 Mon Sep 17 00:00:00 2001
From: Stephane Del Pino <stephane.delpino44@gmail.com>
Date: Sun, 17 Jul 2022 22:07:54 +0200
Subject: [PATCH] Fix C++ syntax thanks to clang and simplify interface

Remove legacy "in code" output.
It is still possible to create output files directly from C++, but
quantities have to be added one by one, not at construction anymore.
---
 src/output/OutputNamedItemValueSet.hpp | 54 ++++----------------------
 1 file changed, 8 insertions(+), 46 deletions(-)

diff --git a/src/output/OutputNamedItemValueSet.hpp b/src/output/OutputNamedItemValueSet.hpp
index 463e67a55..80c3d2052 100644
--- a/src/output/OutputNamedItemValueSet.hpp
+++ b/src/output/OutputNamedItemValueSet.hpp
@@ -101,41 +101,6 @@ class OutputNamedItemDataSet
   // provided order
   std::vector<std::pair<std::string, ItemDataVariant>> m_name_itemvariant_list;
 
-  template <typename DataType,
-            ItemType item_type,
-            typename ConnectivityPtr,
-            template <typename DataTypeT, ItemType item_type_t, typename ConnectivityPtrT>
-            typename ItemDataT,
-            typename... Args>
-  PUGS_FORCEINLINE constexpr void
-  _doInsert(const NamedItemData<DataType, item_type, ConnectivityPtr, ItemDataT>& named_item_data)
-  {
-    for (auto& [name, itemvariant] : m_name_itemvariant_list) {
-      if (name == named_item_data.name()) {
-        std::ostringstream error_msg;
-        error_msg << "duplicate name '" << rang::fgB::yellow << name << rang::fg::reset << "' in name output list";
-        throw NormalError(error_msg.str());
-      }
-    }
-    m_name_itemvariant_list.push_back(std::make_pair(named_item_data.name(), named_item_data.itemData()));
-  }
-
-  template <typename DataType,
-            ItemType item_type,
-            typename ConnectivityPtr,
-            template <typename DataTypeT, ItemType item_type_t, typename ConnectivityPtrT>
-            typename ItemDataT,
-            typename... Args>
-  PUGS_FORCEINLINE constexpr void
-  _unpackVariadicInput(const NamedItemData<DataType, item_type, ConnectivityPtr, ItemDataT>& named_item_data,
-                       Args&&... args)
-  {
-    _doInsert(named_item_data);
-    if constexpr (sizeof...(args) > 0) {
-      this->_unpackVariadicInput(std::forward<Args>(args)...);
-    }
-  }
-
  public:
   auto
   begin() const
@@ -157,17 +122,14 @@ class OutputNamedItemDataSet
   void
   add(const NamedItemData<DataType, item_type, ConnectivityPtr, ItemDataT>& named_item_data)
   {
-    _doInsert(named_item_data);
-  }
-
-  template <typename... DataType,
-            ItemType... item_type,
-            typename... ConnectivityPtr,
-            template <typename DataTypeT, ItemType item_type_t, typename ConnectivityPtrT>
-            typename... ItemDataT>
-  OutputNamedItemDataSet(NamedItemData<DataType, item_type, ConnectivityPtr, ItemDataT>... named_item_data)
-  {
-    _unpackVariadicInput(named_item_data...);
+    for (auto& [name, itemvariant] : m_name_itemvariant_list) {
+      if (name == named_item_data.name()) {
+        std::ostringstream error_msg;
+        error_msg << "duplicate name '" << rang::fgB::yellow << name << rang::fg::reset << "' in name output list";
+        throw NormalError(error_msg.str());
+      }
+    }
+    m_name_itemvariant_list.push_back(std::make_pair(named_item_data.name(), named_item_data.itemData()));
   }
 
   OutputNamedItemDataSet(const OutputNamedItemDataSet&) = default;
-- 
GitLab