more effective c++限制对象个数(27)

这部分记住的有这几条:

先看理论:stack(栈)高地址往底地址, heap(堆)由低地址往高地址成长++
1
2
3
4
5
6
bool onHeap(const void* address)
{
char onTheStack;
return address < &onTheStack;
}

onHeap函数内,onTheStack是个局部变量,所以它被置于stack内。当onHeap被调用,其stack frame 会被放在stack的顶端,由于此框架中stack系向低地址成长,所以onThestack的地址移动比其他任何一个stack变量更低。

所以address比onthestack更低,它就一定位于heap中。

此部分,作者为了让对象产生于heap中,向operate new添加东西标记。。

// //