所以我想改进代码中一些运算符和函数的
noexcept
我可以标记这个功能吗
noexcept
?
std::string remove_suffix(/*passed by copy*/ std::string s)
/*noexcept*/
// is noexcept allowed here?
{
if(s[s.size()-1] == '0')
s[0] = 'B';
else
s[0] = 'X';
return s;
}
我可以标记这个函数吗
noexcept
,如果它碰巧抛出异常,它会调用std::terminate
吗?
我想确保这一点,以便我可以将我的课程的加法运算符标记为
noexcept
进行更正。
这个函数不能抛出:正如评论中所讨论的,初始化参数不是函数执行的一部分,并且返回隐式是一个move(尽管它不能被省略,因为它来自函数参数)。