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