这个关键字是不是有点反直觉?
该函数不会抛出任何异常,因此我们向它添加了一个 throw() 标记。它应该是silent()还是类似的东西?
这个关键字是不是有点反直觉?
该函数不会抛出任何异常,因此我们向它添加了一个 throw() 标记。它应该是silent()还是类似的东西?
从 C++17 之前的角度来看:这可能是违反直觉的,但只是暂时的。throw(type, type, ...)
提供函数可能抛出的异常类型列表。throw()
提供一个空的类型列表,即函数不能抛出任何类型的异常。
throw()
= 可以准确地抛出那些异常:""
也就是说,不能扔任何东西。
从历史上看,提供了一个真实的列表:throw(X,Y,Z)
意思是“可以抛出X
,或Y
或Z
”。该语法已被删除,因为它并没有真正有用:最有用的保证是函数不能抛出任何东西。
该关键字已弃用,在当前标准中它是“noexcept”