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),即使它不会抛出任何异常?
答案 0 :(得分:2)
所以,问题是:我真的被迫(冷静下来的XCode编译器) 将自定义'operator new'声明为throw(std :: bad_alloc)即使它 不会抛出任何异常?
是的,你做了:
http://developer.apple.com/library/mac/#technotes/tn2185/_index.html
为了完全控制和移植,如果您替换任何这些签名,则应替换所有这些签名。但是,数组的默认实现只是转发到非数组形式。如果只替换四个非数组表单,请将默认数组表单转发到替换表单。