inline
当 C++11调用使用noexcept
限定符声明的其他函数时,它们是否对函数或方法提供任何保证?
class My_String { ...
const char * c_str () const noexcept;
inline operator const char * () const { return c_str(); }
};
noexcept
我假设优化编译器可以根据资格自由实现内联方法,而无需完全 EH 和堆栈展开。我也希望这是一个简单的访问器方法:
... inline operator const char * () const { return m_buffer; }
虽然这个例子看起来微不足道,但当用于实现其他类或函数时,异常保证很重要。问: C++11 标准是否解决了这个问题,还是应该标记内联方法noexcept
?noexcept
或者除非需要匹配类或函数规范,否则最好省略?
编辑:为了避免一些混淆:noexcept
内联方法是隐式的吗?