mesytec-mnode/external/taskflow-3.8.0/taskflow/utility/singleton.hpp

34 lines
553 B
C++
Raw Normal View History

2025-01-04 01:25:05 +01:00
#pragma once
namespace tf {
/** @class Singleton
@brief class template to create a thread-safe singleton object
*/
template <typename T>
class Singleton {
public:
/**
@brief get a reference to the singleton object
*/
inline static T& get() {
static T instance;
return instance;
}
private:
Singleton() = default;
~Singleton() = default;
Singleton(const Singleton&)= delete;
Singleton& operator=(const Singleton&)= delete;
};
} // end of namespace tf -----------------------------------------------------