最近遇到了一个程序,一开始有些莫名其妙,最后经过思考、猜想、验证的过程,将其总结如下:
首先先上代码:
函数声明如下:
class Controller
{
using AnalysisManager = NST::analysis::AnalysisManager;
using FiltrationManager = NST::filtration::FiltrationManager;
class Running
{
public:
inline Running(Controller&);
Running() = delete;
Running(const Running&) = delete;
Running& operator=(const Running&) = delete;
inline ~Running();
private:
Controller& controller;
};
public:
Controller(const Parameters&);
Controller(const Controller&) = delete;
Controller& operator=(const Controller&) = delete;
~Controller();
int run();
private:
// initializer for global outptut
utils::Out::Global gout;
// initializer for global logger
utils::Log::Global glog;
// sto