template<typename T>
class Singleton
{
public:
	static T & get()
	{
		static T instance;
		return instance;
	}

protected:
	Singleton() {}
};

class Yoba : public Singleton<Yoba>
{
};

int main()
{
	Yoba x;
	Yoba::get();
	
	return 0;
}