摘要:
近日在研究webkit的时候发现了一个函数template<typename T> inline void deleteOwnedPtr(T* ptr){ typedef char known[sizeof(T) ? 1 : -1]; if(sizeof(known)) delete ptr;}一开始对这个函数非常费解,为什么作者不直接delete ptr;通过上stackoverflow提问然后查阅了一些资料后终于得到结果:这是用来防范错误释放incomplete type指针而导致的未知的行为。这样做之后,释放incomplete type指针将引发一个编译错误,... 阅读全文