2015-10-18 49 views

回答

1

为什么你需要?你的编译器知道你的代码,如果你永远不会在你的操作符中做什么,你不会得到异常处理开销。如果你在这些操作符内部做些什么,可能会抛出,你在语义上不能使用说明符(除非你希望你的程序在抛出时立即退出)。

我个人不认为noexcept会产生任何可衡量的性能提升,但最隐秘的角落案例 - 支持它的编译器正在生成后端代码,对不抛出的代码没有性能损失。对我而言,noexcept更多的是编译时检查noexcept(expression) operator形式的语言特性。比较Bjarne's FAQ