XCode iOS运营商新的自定义实现

时间:2011-12-15 12:09:29

标签: ios exception xcode4.2 new-operator

XCode为我的全局运算符new实现发出警告:

void *operator new(size_t blocksize);

它说:'operator new'缺少异常规范'throw(std :: bad_alloc)'

但我的实现并不打算抛出任何异常,我宁愿将其声明为

void *operator new(size_t blocksize) throw();

但是,后一种实现会导致错误:

声明中的异常规范与先前的声明

不匹配

所以,问题是:我是否真的被迫(冷静下来XCode编译器)将自定义'operator new'声明为throw(std :: bad_alloc),即使它不会抛出任何异常?

1 个答案:

答案 0 :(得分:2)

  

所以,问题是:我真的被迫(冷静下来的XCode编译器)   将自定义'operator new'声明为throw(std :: bad_alloc)即使它   不会抛出任何异常?

是的,你做了:

http://developer.apple.com/library/mac/#technotes/tn2185/_index.html

  

为了完全控制和移植,如果您替换任何这些签名,则应替换所有这些签名。但是,数组的默认实现只是转发到非数组形式。如果只替换四个非数组表单,请将默认数组表单转发到替换表单。