template <typename TYPE> struct is_pointer
{
enum { val = 0 };
};
template <typename TYPE> struct is_pointer<TYPE*>
{
enum { val = 1 };
};
template <typename TYPE> inline void ConstructObject(void* object)
{
new (object) TYPE; //placement new
}
template <typename TYPE> inline void DestructObject(void* object)
{
((TYPE*)object)->TYPE::~TYPE(); //注意这里对于成员函数的调用方式。
}
转载于:https://my.oschina.net/invictuslee/blog/223020