作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
在Webkit中找到这个函数
template<typename T> inline void deleteOwnedPtr(T* ptr)
{
typedef char known[sizeof(T) ? 1 : -1];
if(sizeof(known))
delete ptr;
}
为什么他们不使用
if (sizeof(T))
delete ptr;
什么意思
char known[-1];
最佳答案
在 webkit-dev 邮件列表中找到了解释。如果有人试图删除不完整的类型,它会引发编译器错误。
https://lists.webkit.org/pipermail/webkit-dev/2010-November/015051.html
If we delete a pointer and the object has incomplete type, we get undefined behavior. Instead this code causes compilation to fail if the object has incomplete type. The use of a negative number for the size of an array is a way to guarantee we get a compilation error.
关于c++ - Webkit中的deleteOwnedPtr函数看不懂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10897998/
我是一名优秀的程序员,十分优秀!