wrap static variable into function

This commit is contained in:
Joachim Schoeberl 2024-01-09 10:21:06 +01:00
parent fda7cfa2bc
commit 54287bbfbb

View File

@ -10,24 +10,31 @@
namespace ngcore
{
// clang-tidy should ignore this static object
static std::map<std::string, detail::ClassArchiveInfo> type_register; // NOLINT
// static std::map<std::string, detail::ClassArchiveInfo> type_register; // NOLINT
auto& GetTypeRegister()
{
static std::map<std::string, detail::ClassArchiveInfo> type_register;
return type_register;
}
const detail::ClassArchiveInfo& Archive :: GetArchiveRegister(const std::string& classname)
{
// if(type_register == nullptr) type_register =
// std::make_unique<std::map<std::string, detail::ClassArchiveInfo>>();
return (type_register)[classname];
return GetTypeRegister()[classname];
}
void Archive :: SetArchiveRegister(const std::string& classname, const detail::ClassArchiveInfo& info)
{
// if(type_register == nullptr) type_register =
// std::make_unique<std::map<std::string, detail::ClassArchiveInfo>>();
(type_register)[classname] = info;
GetTypeRegister()[classname] = info;
}
bool Archive :: IsRegistered(const std::string& classname)
{
// if(type_register == nullptr) type_register =
// std::make_unique<std::map<std::string, detail::ClassArchiveInfo>>();
return type_register.count(classname) != 0;
return GetTypeRegister().count(classname) != 0;
}
#ifdef NETGEN_PYTHON