// // Created by martial.simon on 2/27/25. // #pragma once #include template class Singleton { protected: Singleton() = default; private: Singleton(const Singleton&) = delete; Singleton& operator=(const Singleton&) = delete; public: static T& instance(); }; class Logger : public Singleton { Logger() = default; friend class Singleton; public: void open_log_file(const std::string& file); void write_to_log_file(); void close_log_file(); }; #include "singleton.hxx"