    #include <iostream>
    using namespace std;
     
    template <typename T>
    class Singleton
    {
    public:
    	static T& Get() noexcept
    	{
    		static T instance;
    		return instance;
    	};
     
    protected:
    	Singleton() = default;
    };
     
    class Foo : public Singleton<Foo>
    {
    public:
    	int t = 0;
    private:
    	Foo() = default;
    };
     
    int main() {
     
    	//Foo foo;
    	Foo::Get().t += 10;
     
    	return 0;
    }