GameProgrammingGemsのセクション1.3 自動シングルトンユーティリティ
で、下のコードがなにをやってるのかわかりません。誰か説明してくれませんか?
template<typename T> class Singleton
{
static T* ms_Singleton;
public:
Singleton()
{
int offset = (int)(T*)1 - (int)(Singleton<T>*)(T*)1;
ms_Singleton = (T*)((int)this + offset);
}
...
}:
クラステンプレート自体のサイズとTのサイズを足したものをシングルトンに
割り当ててるのかな?と思いますが、newした時点で割り当てられたアドレスの
後方を指してるような気がして不安です。よろしくお願いします。